# schedule8

Capital Cost Allowance (CCA)

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2025 and later
- Strict profile: s8_2025_class8_continuing_year_worked_example_target_value_v1
- Payload schema version: 0.27.0
- Dependencies (run automatically): schedule10, schedule23, schedule24, schedule351, schedule6

## Example request

Send this body to `POST /api/v1/computations/batch`. This example works with or without `payloadContract`.

```json
{
  "compute": [
    "schedule8"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "isCCPC": true,
    "daysInYear": 365,
    "pyUCCPools": [
      {
        "ccaClass": "8",
        "closingUCC": 0
      }
    ],
    "assetData": [],
    "dispositions": [],
    "schedule8AdjustmentCoverage": {
      "schemaVersion": 2,
      "reviewed": true,
      "reviewedAt": "2026-07-19T12:00:00Z",
      "column205AdjustmentsApplicable": false,
      "column221AssistanceAfterDispositionApplicable": false,
      "column222RepaymentsAfterDispositionApplicable": false,
      "rentalPropertySeparateClassApplicable": false,
      "purposeBuiltRentalPropertyRulesApplicable": false,
      "rentalIncomeCcaLimitApplicable": false,
      "leasingPropertyRulesApplicable": false,
      "specifiedLeasingPropertyRulesApplicable": false,
      "affiliatedPersonStopLossApplicable": false,
      "reg1101_5qElectionApplies": false,
      "multipleClass10_1VehiclesPresent": false,
      "otherPrescribedSeparateClassRuleApplies": false,
      "specialDispositionRolloverOrDeferralApplies": false,
      "class14_1TransitionalOpeningBalanceApplicable": false,
      "specifiedEnergyPropertyRulesApplicable": false,
      "class1NrbAdditionalAllowanceEligible": false,
      "class1UnmodelledAdditionalAllowanceApplies": false,
      "class12ParagraphHalfYearExclusionApplies": false,
      "diepEligibilityAndAllocationConfirmed": false,
      "capitalGainRoutingComplete": false
    },
    "t2Jacket": {
      "filingStatus": {
        "firstYearAfterIncorporation": false,
        "firstYearAfterAmalgamation": false,
        "subsidiaryWindupS88": false
      }
    }
  }
}
```

## Input cells (1773)

Paths are relative to the request's `inputs` object. `[]` marks an array element.

Cells marked **always** require a non-null value in every request. Cells marked **strict** are required when you supply this target's `payloadContract`. See [Run computations](https://docs.filemark.ca/run-computations).

Unknown cells and JSON type mismatches return `400` with the affected cells in the error details.

| Cell | Types | Required | Description |
| --- | --- | --- | --- |
| `__linked_prior_filed_continuity__` | array \| boolean \| null \| number \| object \| string |  |  |
| `__predecessor_filed_ucc_pools__` | array \| boolean \| null \| number \| object \| string |  |  |
| `__s4_carryback_target_capacity__` | array \| boolean \| null \| number \| object \| string |  |  |
| `__taxation_period_history__` | array \| boolean \| null \| number \| object \| string |  |  |
| `accounts` | array |  | The trial balance: a JSON array of account objects, read by every schedule that classifies or sums accounts. Omit it when the return carries no trial balance; null is a malformed container and is refused, as is any element that is not an object. Each row's members are declared by the schedules that read them. |
| `accounts[]` | object |  | One trial-balance account row. Its members are declared by the schedules that read them; a row that is not an object is refused. |
| `accounts[].classification` | object |  |  |
| `accounts[].classification.feedsSchedule` | array \| boolean \| null \| number \| object \| string |  | The downstream schedule or form that owns this account's tax amount, such as S2, S3, S8, T661, or DivC for a Division C deduction. Null means Schedule 1 alone owns it. A null s1Line together with DivC is the off-Schedule-1 routing key. No enum is published because the engine compares only against DivC and stringifies everything else. |
| `acquisitionOfControlDate` | array \| boolean \| null \| number \| object \| string |  | The date control of the corporation was acquired, in ISO YYYY-MM-DD form, which splits the taxation year for the acquisition-of-control stub returns. Schedule 8 requires the full date and rejects a bare year. |
| `allocations` | array |  |  |
| `allocations[]` | object |  |  |
| `allocations[].albertaSmallBusinessFactorBasis` | array \| boolean \| null \| number \| object \| string |  | Which authority the Alberta small-business allocation factor follows. Send statute or prescribed_form. It is permitted on the Alberta row only, and absent means unanswered. |
| `allocations[].allocationSourceIds` | array \| boolean \| null \| number \| object \| string |  |  |
| `allocations[].foreignCountryDetails` | array \| null |  | Optional per-country attribution behind the printed Outside Canada allocation row. Supply all final attributed salary and revenue amounts after Part IV adjustments. They must reconcile to that row before country amounts are published. Omission retains the existing aggregate allocation. Schedule 21 still requires its own actual foreign-source income amounts; provincial allocated taxable income is not its numerator. |
| `allocations[].foreignCountryDetails[]` | object |  | One foreign country permanent-establishment attribution row. Enter a non-Canadian two-letter country code and explicit final amounts. Special-industry allocations additionally need evidenced country allocatedTaxableIncome amounts summing to the existing Outside Canada aggregate. |
| `allocations[].foreignCountryDetails[].allocatedTaxableIncome` | null \| number \| string |  | Reviewed country allocation of the existing Outside Canada taxable-income amount for special-industry formulas. Required with supporting evidence on that path and summed exactly to the aggregate. It cannot override the ordinary Regulation 402 country calculation. |
| `allocations[].foreignCountryDetails[].countryCode` | array \| boolean \| null \| number \| object \| string |  | ISO 3166-1 alpha-2 country code other than CA. Each country must appear once in this collection. |
| `allocations[].foreignCountryDetails[].evidenceReference` | array \| boolean \| null \| number \| object \| string |  | Reference supporting the country attribution and any special-industry allocation. Required when a special formula uses a reviewed country allocatedTaxableIncome split. |
| `allocations[].foreignCountryDetails[].grossRevenue` | null \| number \| string |  | Final gross revenue attributed to this foreign country after the applicable Part IV adjustments, in the return currency. Enter explicit zero when nil; country totals must match the final Outside Canada amount. |
| `allocations[].foreignCountryDetails[].revenueReclass` | null \| number \| string |  | Signed final revenue attribution movement for this foreign country, in the return currency. Enter explicit zero when nil; total country movements must match the final Outside Canada movement. |
| `allocations[].foreignCountryDetails[].totalSalariesWages` | null \| number \| string |  | Final salaries and wages attributed to this foreign country after the applicable Part IV adjustments, in the return currency. Enter explicit zero when nil; the country totals must match the final Outside Canada amount. |
| `allocations[].grossRevenue` | null \| number \| string |  |  |
| `allocations[].hasPermanentEstablishment` | boolean \| null |  | Reg 400 permanent establishment — TRI-STATE. `null` means the question is UNANSWERED, which is neither a yes nor a no: the row takes no allocation (Reg 402(2) denies one to a province without a permanent establishment), and when it carries gross revenue or salaries the engine raises the error-severity `schedule5_permanent_establishment_unanswered` hold instead of reading the blank as "no". |
| `allocations[].jurisdiction` | array \| boolean \| null \| number \| object \| string | strict |  |
| `allocations[].offshoreAreaConfirmed` | boolean \| null |  |  |
| `allocations[].outsourcedServiceFees` | null \| number \| string |  |  |
| `allocations[].peBasis` | array \| boolean \| null \| number \| object \| string |  |  |
| `allocations[].peEvidenceReference` | array \| boolean \| null \| number \| object \| string |  |  |
| `allocations[].physicalLocation` | array \| boolean \| null \| number \| object \| string |  |  |
| `allocations[].reg402_1DeemedSalary` | null \| number \| string |  |  |
| `allocations[].reg402_1SalaryDeduction` | null \| number \| string |  |  |
| `allocations[].reg402_4_1ThrowbackRevenue` | null \| number \| string |  |  |
| `allocations[].revenueReclass` | null \| number \| string |  |  |
| `allocations[].rowId` | array \| boolean \| null \| number \| object \| string |  |  |
| `allocations[].totalSalariesWages` | null \| number \| string |  |  |
| `allocations[].unmodelledProvincialCreditsClaimed` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocAdventureTradeInventory` | array \| null |  | Entered acquisition-of-control property or reserve records; an empty list states there are no records. |
| `aocAdventureTradeInventory[]` | object |  | One entered property or reserve record. |
| `aocAdventureTradeInventory[].cost` | number \| string |  |  |
| `aocAdventureTradeInventory[].description` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocAdventureTradeInventory[].fmv` | number \| string |  |  |
| `aocBecomesOrCeasesExemptAtEvent` | boolean \| null |  | Whether the taxpayer becomes or ceases to be exempt from Part I tax at the loss restriction event. ITA s.111(5.1) is expressly subject to s.111(5.5)(a), which suppresses the depreciable-property write-down in that case, so the answer decides whether the write-down runs at all. Boolean is the canonical form; an unanswered fact blocks rather than assuming either branch. |
| `aocDesignatedProperty111_4_e` | array \| null |  | Entered acquisition-of-control property or reserve records; an empty list states there are no records. |
| `aocDesignatedProperty111_4_e[]` | object |  | One entered property or reserve record. |
| `aocDesignatedProperty111_4_e[].acb` | number \| string |  |  |
| `aocDesignatedProperty111_4_e[].dateAcquired` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].description` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].designated_proceeds` | number \| string |  | The amount designated under ITA 111(4)(e) for the property; the deemed proceeds are the lesser of its fair market value and the greater of its adjusted cost base and this amount. A row stating designatedProceeds is refused naming this cell. |
| `aocDesignatedProperty111_4_e[].fmv` | number \| string |  |  |
| `aocDesignatedProperty111_4_e[].foreignCurrency` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].isActiveAsset` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].isForeignAffiliateShare` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].isForeignSource` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].isListedPersonalProperty` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].paragraph40_2_fApplies` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].propertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].propertyType` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].subsection111_5_1WouldApply` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].subsection46_4Applies` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDesignatedProperty111_4_e[].subsection46_4GainLossWithoutDecrease` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDoubtfulDebtReserves111_5_3` | array \| null |  | Entered acquisition-of-control property or reserve records; an empty list states there are no records. |
| `aocDoubtfulDebtReserves111_5_3[]` | object |  | One entered property or reserve record. |
| `aocDoubtfulDebtReserves111_5_3[].debt_amount` | number \| string |  |  |
| `aocDoubtfulDebtReserves111_5_3[].description` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocDoubtfulDebtReserves111_5_3[].doubtful_debt_reserve_20_1_l` | number \| string |  |  |
| `aocMainReasonIsToCauseProvisionToApply` | boolean \| null |  | Whether the main reason for the loss restriction event was to cause ITA paragraph 111(4)(d) or one of subsections 111(5.1) to (5.3) to apply. A Yes engages s.111(5.5)(b), which disapplies the targeted provision and paragraph 111(4)(e); answer aocMainReasonTargetedProvision as well so the engine knows which chain to suppress. This is a legal conclusion the engine cannot derive, so an unanswered fact holds the pre-event write-down rather than filing it either way. Boolean is the canonical form. |
| `aocMainReasonTargetedProvision` | array \| boolean \| null \| number \| object \| string |  | Which provision the s.111(5.5)(b) main reason targeted. The subsection names a closed set — paragraph 111(4)(d) and subsections 111(5.1) to (5.3) — and disapplies exactly one of them plus paragraph 111(4)(e), never their union, so the answer selects the chain that is suppressed. Required whenever aocMainReasonIsToCauseProvisionToApply is Yes; any other string is refused rather than defaulted, because suppressing the wrong provision suppresses the wrong write-down. |
| `aocNondepreciableCapitalProperties` | array \| null |  | Entered acquisition-of-control property or reserve records; an empty list states there are no records. |
| `aocNondepreciableCapitalProperties[]` | object |  | One entered property or reserve record. |
| `aocNondepreciableCapitalProperties[].acb` | number \| string |  |  |
| `aocNondepreciableCapitalProperties[].description` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocNondepreciableCapitalProperties[].fmv` | number \| string |  |  |
| `aocNondepreciableCapitalProperties[].isActiveAsset` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocNondepreciableCapitalProperties[].isForeignSource` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocNondepreciableCapitalProperties[].propertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPreStubFiledReturnId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the filed pre-acquisition-of-control stub return whose authenticated basis envelope this return builds on. The acquisition-of-control node requires it to equal the envelope's filedReturnId and refuses a basis whose return id differs. |
| `aocPropertyDesignations` | array \| null |  | Per-property ITA paragraph 111(4)(e) acquisition-of-control designations for depreciable property. Each row identifies the CCA class and property and supplies its fair market value, capital cost, and designated amount; omit the array only when no such designation is made. |
| `aocPropertyDesignations[]` | object |  | Per-property ITA paragraph 111(4)(e) acquisition-of-control designations for depreciable property. Each row identifies the CCA class and property and supplies its fair market value, capital cost, and designated amount; omit the array only when no such designation is made. |
| `aocPropertyDesignations[].capitalCost` | number \| string |  |  |
| `aocPropertyDesignations[].ccaClass` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].dateAcquired` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].description` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].designatedAmount` | number \| string |  | The amount designated under ITA 111(4)(e) for the depreciable property, read with capitalCost as its cost. A row stating designated_proceeds, designatedProceeds or acb is refused naming designatedAmount or capitalCost. |
| `aocPropertyDesignations[].fmv` | number \| string |  |  |
| `aocPropertyDesignations[].foreignCurrency` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].isActiveAsset` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].isForeignAffiliateShare` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].isForeignSource` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].isListedPersonalProperty` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].paragraph40_2_fApplies` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].propertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].propertyType` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].subsection111_5_1WouldApply` | boolean |  |  |
| `aocPropertyDesignations[].subsection46_4Applies` | array \| boolean \| null \| number \| object \| string |  |  |
| `aocPropertyDesignations[].subsection46_4GainLossWithoutDecrease` | array \| boolean \| null \| number \| object \| string |  |  |
| `assetData` | array |  | Current-year property facts and additions for Schedule 8. Schedule 6 reads the same rows, and each cohort of a row, to link a land disposition to its building for ITA 13(21.1) by propertyGroupId. |
| `assetData[]` | object |  | Current-year property facts and additions for Schedule 8. |
| `assetData[]._rowKey` | array \| boolean \| null \| number \| object \| string |  |  |
| `assetData[].account` | array \| boolean \| null \| number \| object \| string |  | General ledger account the property is booked to, as text. It is one of the row's own words: where those words name inventory, research, art or a yacht, camp, lodge or golf property, a blank answer to the matching Reg 1102(1) exclusion question holds the class; otherwise the blank is treated as not excluded, with a disclosed note. On a Class 10 addition above the Reg 7307(1) base, words that name no passenger vehicle answer a blank isPassengerVehicle as false. |
| `assetData[].accountDescription` | array \| boolean \| null \| number \| object \| string |  | Description of the general ledger account the property is booked to, as text. Like account and accountName, it is part of the row's words that decide whether a Reg 1102(1) exclusion question (inventory, research, art, recreational property) or the Class 10 passenger-vehicle question must be answered or can default. |
| `assetData[].accountName` | array \| boolean \| null \| number \| object \| string |  | Name of the general ledger account the property is booked to, as text. It is part of the row's words: where they name inventory, research, art or recreational property, a blank Reg 1102(1) exclusion answer holds the class, and otherwise it defaults to not excluded with a disclosed note. On a Class 10 addition above the Reg 7307(1) base, a blank isPassengerVehicle is read as false when the words name no passenger vehicle and holds the class when they do. |
| `assetData[].acquiredForIncomePurpose` | boolean \| null \| string |  | Whether the property was acquired to gain or produce income, as true, false or null. False holds the class, since Reg 1102(1)(c) excludes the property from every class. On Schedule 8, null is treated as true with a disclosed note, except where reg1101IncomeSourceType is Not applicable: there null holds the class, and so does true (an income-producing property marked Not applicable) unless another prescribed separate class keys the row's pool. On a Schedule IV to VI resource row anything but true holds the class. Schedule 31 reads this answer separately on the linked fixed-assets row: only true counts the property as depreciable there, so a blank or false answer excludes the linked Part 4 row from the Atlantic investment tax credit. |
| `assetData[].acquiredFromNonArmsLengthPerson` | boolean \| null \| string |  | Whether this addition came from a person or partnership not dealing at arm's length with the corporation, as true, false or null. On a row with additions, null holds the class unless T2 boxes 162 and 171 are both No; then a blank defaults to false with a disclosed note. Off a Schedule IV to VI resource row, true is refused without an answer to reg1100_2_2NonArmsLengthContinuityApplies. Off a passenger vehicle, true applies ITA 13(7)(e): a blank propertyId or transferorCapitalCostImmediatelyBefore holds the class, and once the transferor's cost is stated the engine replaces the addition's capital cost under 13(7)(e)(i), (ii) or (iii). Where the stated cost is above the transferor's cost, it also needs the transferor's proceeds and resident status, and for a resident transferor the section 110.6 amounts; each holds the class when blank. On a Schedule IV to VI resource row, true applies ITA 13(7)(e) without asking reg1100_2_2NonArmsLengthContinuityApplies, and the transferor facts hold the pool when blank as above; a blank propertyId is refused there instead of held, since every resource row needs one. It is not applied to a Schedule IV or VI property answered as timber resource property. On a passenger vehicle it is the default answer to isPassengerVehicleAcquiredNonArmsLength for ITA 13(7)(h), and the class is held when the two answers disagree. |
| `assetData[].acquiredInParagraph55_3_bReorganization` | boolean \| null \| string |  | Whether the property was acquired in a reorganization to which ITA paragraph 55(3)(b) applies, as true, false or null (unanswered). On a row with additions other than a Schedule IV to VI resource row, true requires an explicit reg1100_2_2NonArmsLengthContinuityApplies answer, or the request is refused; a true answer to that question keeps the addition out of the Reg 1100(2) half-year reduction (Reg 1100(2.2)). |
| `assetData[].acquisitionDate` | array \| boolean \| null \| number \| object \| string |  | Date the property was acquired, as YYYY-MM-DD. On a row with additions it is required and may not fall after availableForUseDate, or the request is refused. On a Schedule IV to VI resource row a missing date holds the class instead. In a Schedule IV pool claiming AIIP the date is one fact for the pool, and dates that differ across its rows are refused. It selects the Reg 7307 vehicle cost limits, the AIIP/RIIP and immediate-expensing windows and the class's Schedule II acquisition window. A date outside that window is refused. For Class 1, 3 and 6 the window applies only to a building, and a building outside it holds the class instead of being refused; for Class 1 or 6 a Yes to the class's own eligibility question lets the building through. When the date is more than 357 days before the taxation year starts, the property is not AIIP or RIIP and availableForUseByRolling13_27_bOr13_28_c is blank, filing readiness is held. Schedule 31 also reads the date from the linked fixed-assets row. |
| `assetData[].additionCohorts` | array \| null |  | Optional list splitting this row's additions into same-treatment slices, each with a positive amount and its own dates and answers (for example AIIP/RIIP and DIEP). The amounts must sum exactly to additions, which must be positive. Each cohort's values pass the same checks as a row's. A single cohort inherits the row's facts where it is blank. With several, each cohort is its own property and states its own facts: a blank cohort takes only ccaClass and assetClass from the row, and the row is refused if it states any other fact a cohort takes as its own property's (every cohort input but amount, cohortId and description) that a cohort leaves blank or states differently; the refusal names each. The row's own bookkeeping facts are not compared: its class and label words, propertyId and its provisional-identity answers, additions, openingCost, closingCost and assetCount, ccaClaimedOverride, s247CapitalCost, incorporationCostExcessAddition and the receiving-class operands of the automatic paragraph (k) and Class 41 splits. The request is also refused on a multi-cohort row that carries disposition amounts, on a Class 10.1 row with more than one cohort (Reg 1101(1af)), on a cohort carrying leaseTermYears or firstRenewalYears, on a row with more than one cohort that needs the automatic Class 3 or 6 paragraph (k) split or the Reg 1102(14.11) or (14.12) Class 41 split, on a split role or another class stated on the single cohort of a row that split divides, and when a current-year s.247(2.1) capital-cost adjustment to the row names no cohort. |
| `assetData[].additionCohorts[]` | object |  |  |
| `assetData[].additionCohorts[]._rowKey` | array \| boolean \| null \| number \| object \| string |  |  |
| `assetData[].additionCohorts[].account` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].account, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].accountDescription` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].accountDescription, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].accountName` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].accountName, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].acquiredForIncomePurpose` | boolean \| null \| string |  | The cohort's own assetData\[\].acquiredForIncomePurpose, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].acquiredFromNonArmsLengthPerson` | boolean \| null \| string |  | The cohort's own assetData\[\].acquiredFromNonArmsLengthPerson answer for its slice of the row's additions; see that field. When T2 boxes 162 and 171 are both No, a blank on any cohort is set to false. Otherwise one cohort takes a blank from the row, several cohorts leave it blank, and a cohort left unanswered holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].acquiredInParagraph55_3_bReorganization` | boolean \| null \| string |  | The cohort's own assetData\[\].acquiredInParagraph55_3_bReorganization, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].acquisitionDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].acquisitionDate for its slice of the row's additions, as YYYY-MM-DD; see that field. With one cohort a blank takes the row's date. With several cohorts a blank stays blank and the request is refused, except in a Schedule IV-VI resource pool, where the missing date holds the class. The cohort's own date picks its Reg 7307 cost limit, AIIP/RIIP window and Schedule II acquisition window. In a Schedule IV pool claiming AIIP the date is one fact for the pool instead: the dates of its property units must agree (refused otherwise), a single cohort's date standing in for its row's. Schedule 31 reads only the row's date, never a cohort's. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].additions` | null \| number \| string |  | Not used on a cohort. The cohort's slice of the row's additions is its amount, which replaces any additions value the cohort carries; the cohorts' amounts must add up exactly to the row's own additions. |
| `assetData[].additionCohorts[].affiliatedPersonStopLossApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].affiliatedPersonStopLossApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row, in the class computation and in the coverage packet's stop-loss evidence; see that field. A cohort's Yes therefore requires the stop-loss review and conflicts with a coverage answer of No, as a row's Yes does. With one cohort a blank takes the row's value; with several cohorts the row's value is not used for the cohort, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].affiliatedStopLossDeemedProceeds` | null \| number \| string |  | The cohort's own assetData\[\].affiliatedStopLossDeemedProceeds, read on this cohort's property unit (its slice of the row's additions) the same way as on a row, in the class computation and in the coverage packet's stop-loss evidence flag; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. |
| `assetData[].additionCohorts[].affiliatedStopLossDeemedPropertyOutstanding` | boolean \| null \| string |  | The cohort's own assetData\[\].affiliatedStopLossDeemedPropertyOutstanding, read on this cohort's property unit (its slice of the row's additions) in the class computation and in the coverage packet's stop-loss evidence, where a cohort's Yes conflicts with a coverage answer of No as a row's does; see that field. One thing differs from a row: on a row with several cohorts, a suspension carried in from last year is not passed to the cohorts, so a blank cohort does not hold the pool the way a blank row does. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].affiliatedStopLossDeemedPropertyReleaseClause` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].affiliatedStopLossDeemedPropertyReleaseClause, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. One exception: on a row with several cohorts, a suspension carried in from last year is not passed to the cohorts. A clause named on such a cohort therefore releases nothing and holds the class, unless the cohort itself answers affiliatedPersonStopLossApplies Yes, while the same clause on a row releases the carried property. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].aggregateCostOfAdditionsAndAlterationsToBuilding` | null \| number \| string |  | The cohort's own assetData\[\].aggregateCostOfAdditionsAndAlterationsToBuilding. On a cohort it feeds only the Class 3 or 6 paragraph (k) ceiling check, which holds the class when the value is blank or above the ceiling. Moving the excess to Class 3 or 1 runs only from the row's own value, and a row needing that split cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].amount` | number \| string |  | This cohort's slice of the row's additions, as a positive amount. Required on every cohort; the cohorts' amounts must add up exactly to the row's additions. |
| `assetData[].additionCohorts[].anyServedEvChargingStationAtLeast90Kw` | boolean \| null \| string |  | The cohort's own assetData\[\].anyServedEvChargingStationAtLeast90Kw, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].aocCapitalCostOfClass` | null \| number \| string |  | The cohort's own assetData\[\].aocCapitalCostOfClass, an acquisition-of-control amount for the cohort's CCA pool (its class and any Reg 1101 separate class). Every value stated on the pool's rows and cohorts must agree exactly (refused otherwise), and the one value applies to that pool. With one cohort a blank takes the row's value; with several the row's own value is not used at all, so state it on a cohort or another row of the pool. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].aocDesignatedProceeds` | null \| number \| string |  | The cohort's own assetData\[\].aocDesignatedProceeds, an acquisition-of-control amount for the cohort's CCA pool (its class and any Reg 1101 separate class). Every value stated on the pool's rows and cohorts must agree exactly (refused otherwise), and the one value applies to that pool. With one cohort a blank takes the row's value; with several the row's own value is not used at all, so state it on a cohort or another row of the pool. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].aocFmvOfClass` | null \| number \| string |  | The cohort's own assetData\[\].aocFmvOfClass, an acquisition-of-control amount for the cohort's CCA pool (its class and any Reg 1101 separate class). Every value stated on the pool's rows and cohorts must agree exactly (refused otherwise), and the one value applies to that pool. With one cohort a blank takes the row's value; with several the row's own value is not used at all, so state it on a cohort or another row of the pool. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].assetClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].assetClass, for its slice of the row's additions; see that cell. A blank takes the row's, however many cohorts the row has. |
| `assetData[].additionCohorts[].assetCount` | null \| number |  | The cohort's own assetData\[\].assetCount, as a non-negative integer: its properties left at year end, read on its property unit by the class computation and the Class 10.1, 1-NRB and 1-MP property count. In an ordinary pool each cohort's count adds to the class total and a count above 1 holds the class; in a resource pool all stated counts must agree. With one cohort a blank takes the row's count. With several, a blank counts one property when the cohort states a positive closingCost or its own disposition amounts do not cover its amount, and none when it states a closingCost of 0 or disposition amounts that cover its amount. As on a row, 0 is refused with a positive closingCost or with an amount its disposition amounts do not cover. |
| `assetData[].additionCohorts[].assetDescription` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].assetDescription, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].availableForUseByRolling13_27_bOr13_28_c` | boolean \| null \| string |  | The cohort's own assetData\[\].availableForUseByRolling13_27_bOr13_28_c, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].availableForUseDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].availableForUseDate for its slice of the row's additions, as YYYY-MM-DD; see that field. With one cohort a blank takes the row's date. With several a blank is refused, except in a Schedule IV-VI resource pool, where it holds the class. The date must fall in the taxation year and not before the cohort's acquisitionDate (refused otherwise). In a Schedule IV pool claiming AIIP the dates of its property units must agree (refused otherwise): a single cohort's date stands in for its row's, and a row with several cohorts is no unit of its own. The available-for-use workpaper's s.13(29) checks read the cohort's date; Schedule 31 reads only the row's. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].bookCostRemovalSigned` | null \| number \| string |  | The cohort's own assetData\[\].bookCostRemovalSigned, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. As on a row, a positive value is refused. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. |
| `assetData[].additionCohorts[].buildingNotUsedOrAcquiredForUseByAnyPersonBeforeMarch19_2007` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].buildingNotUsedOrAcquiredForUseByAnyPersonBeforeMarch19_2007. In the class computation of a Class 1-NRB or 1-MP pool it is one answer for the pool: the first non-blank value across the pool's rows and cohorts is used, a No holds the class, and a blank holds it when the pool has additions. With one cohort a blank takes the row's answer there; with several the row's answer is not used. The coverage review of the 1-NRB or 1-MP election reads it pool by pool, taking each pool's first non-blank answer across its property units (rows and cohorts; a row with several cohorts is no unit of its own): a No drops the review for that pool only, so it is asked while any such pool's answer is not No. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].businessCeased` | boolean \| null \| string |  | The cohort's own assetData\[\].businessCeased. It is read only for a Class 14.1 pool left with no property: every answered row and cohort of the pool must agree (refused otherwise), and any row or cohort left blank holds filing readiness. With one cohort a blank takes the row's answer; with several the row's answer is not used, so each cohort needs its own. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].businessProvidesPropertyForHireOrReward` | boolean \| null \| string |  | The cohort's own assetData\[\].businessProvidesPropertyForHireOrReward, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].canadianFilmProductionIncomeBeforeCca` | null \| number \| string |  | The cohort's own assetData\[\].canadianFilmProductionIncomeBeforeCca, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Each film cohort's amount is added to the class's income before CCA, and it is refused on a cohort answering isReg1101_5k_1CanadianFilmProduction No. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].canadianVesselCapitalCost` | null \| number \| string |  | The cohort's own assetData\[\].canadianVesselCapitalCost, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. Each qualifying vessel cohort is its own Reg 1101(2a) class. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].capitalCostOfBuildingAndAdditionsInClasses3_6_20` | null \| number \| string |  | The cohort's own assetData\[\].capitalCostOfBuildingAndAdditionsInClasses3_6_20. On a cohort it feeds only the Class 3 paragraph (k) 25 per cent ceiling check, which holds the class when it is blank for a cohort that check covers. Moving the excess to Class 1 runs only from the row's own value, and a row needing that split cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].capitalCostRolloverProvision` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].capitalCostRolloverProvision, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].cappedVehicleCount` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].cappedVehicleCount, as a whole number. It counts this cohort's vehicles only where a Class 54 zero-emission passenger vehicle cost exceeds the per-vehicle prescribed amount. With one cohort a blank takes the row's count, then the assetCount, then 1. With several cohorts the row's count is not used and a blank holds the class; a count above 1 also holds it. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].ccaClaimedOverride` | array \| boolean \| null \| number \| object \| string |  | Not used on a cohort. The engine reads ccaClaimedOverride only on the parent rows, totalled by the row's ccaClass into that class's claim override; a value on a cohort is ignored, with one cohort or several. |
| `assetData[].additionCohorts[].ccaClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].ccaClass, for its slice of the row's additions; see that field. A stated class moves the cohort's slice into that class for the CCA computation and the checks that read its unit; a blank takes the row's class, however many cohorts the row has. The coverage reviews keyed by class (Class 12 half-year, Class 1 building, Class 1-NRB and 1-MP, Class 14.1 and specified energy) read each property unit's class, the cohort's included. On the single cohort of a row the automatic paragraph (k) or Class 41 split divides, a class other than the row's is refused, since the split assigns each portion its class. The one-cohort limit for Class 10.1 (Reg 1101(1af)), the automatic Class 3 or 6 paragraph (k) split and the row's ccaClaimedOverride total use the row's class. |
| `assetData[].additionCohorts[].changeOfUseEventId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].changeOfUseEventId, read on this cohort's property unit (its slice of the row's additions); see that field. On the unit it keeps a derived ITA 13(7)(d) change-of-use event from attaching to the cohort, as on a row. The batch check that refuses a manual entry repeating a workpaper-derived event ID reads cohorts as well as rows, so a cohort repeating that ID is refused. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].claimsClass431ElectricalStorage` | boolean \| null \| string |  | The cohort's own assetData\[\].claimsClass431ElectricalStorage, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].claimsEligibleTransmissionEquipment` | boolean \| null \| string |  | The cohort's own assetData\[\].claimsEligibleTransmissionEquipment, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].class12CostPerItem` | null \| number \| string |  | The cohort's own assetData\[\].class12CostPerItem, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class12ParagraphCEHProperty` | boolean \| null \| string |  | The cohort's own assetData\[\].class12ParagraphCEHProperty, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class12ParagraphExcludedFromHalfYear` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class12ParagraphExcludedFromHalfYear, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class15AcquiredForCuttingAndRemovingMerchantableTimber` | boolean \| null \| string |  | The cohort's own assetData\[\].class15AcquiredForCuttingAndRemovingMerchantableTimber. Only a Schedule IV (Class 15) resource pool reads it; Schedule V and VI pools do not. There it is one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and that one value answers for the pool. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class15ElectionToExclude` | boolean \| null \| string |  | The cohort's own assetData\[\].class15ElectionToExclude. Only a Schedule IV (Class 15) resource pool reads it; Schedule V and VI pools do not. There it is one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and that one value answers for the pool. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class15NoFurtherUseAfterTimberRemoved` | boolean \| null \| string |  | The cohort's own assetData\[\].class15NoFurtherUseAfterTimberRemoved. Only a Schedule IV (Class 15) resource pool reads it; Schedule V and VI pools do not. There it is one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and that one value answers for the pool. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class1Pre1988ScheduleIIEligibilityConfirmed` | boolean \| null \| string |  | The cohort's own assetData\[\].class1Pre1988ScheduleIIEligibilityConfirmed, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class29PriorYearAvailableForUseCapitalCost` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class29PriorYearAvailableForUseCapitalCost. It is one fact for the Class 29 pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class29PriorYearDesignatedCapitalCost` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class29PriorYearDesignatedCapitalCost. It is one fact for the Class 29 pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class29PriorYearDesignatedSpecifiedTransactionCapitalCost` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class29PriorYearDesignatedSpecifiedTransactionCapitalCost. It is one fact for the Class 29 pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class3Or6OverflowClassOpeningUcc` | null \| number \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value that is not a non-negative amount is refused, as on a row. Only the automatic Class 3 or 6 paragraph (k) split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].class3Or6OverflowClassPriorCcaHistoryConfirmed` | boolean \| null \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value other than true, false, Yes or No is refused, as on a row. Only the automatic Class 3 or 6 paragraph (k) split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].class3Or6ParagraphKSplitRole` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class3Or6ParagraphKSplitRole, as source or overflow; as on a row, any other text is refused in any class. It takes effect only on a Class 3 or 6 cohort holding property that answers class3Or6PostCapAdditionsAndAlterationsApply Yes, where source or overflow exempts it from the paragraph (k) ceiling check. Only the row's own value keeps the row out of the automatic split, and on the single cohort of a row that split divides any role is refused, since the split assigns each portion its role. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class3Or6PostCapAdditionsAndAlterationsApply` | boolean \| null \| string |  | The cohort's own assetData\[\].class3Or6PostCapAdditionsAndAlterationsApply. On a Class 3 or 6 cohort holding property it is asked per property: a blank holds the class, and Yes applies the paragraph (k) ceiling check to the cohort. The automatic split of the excess reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class3Pre1990TransitionalBuildingConditionMet` | boolean \| null \| string |  | The cohort's own assetData\[\].class3Pre1990TransitionalBuildingConditionMet, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class431Subparagraph` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class431Subparagraph, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].class43AssetDetails` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].class43AssetDetails rows. In Class 43.1 or 43.2 each cohort's rows join the class's lines 300 to 303 with every other row's and cohort's, and the class's percentages must total 100 or filing readiness is held. With one cohort a blank takes the row's rows; with several the row's rows are not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class44CapitalCostDeterminedByUse` | boolean \| null \| string |  | The cohort's own assetData\[\].class44CapitalCostDeterminedByUse, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class44CumulativeUseDeterminedCapitalCost` | null \| number \| string |  | The cohort's own assetData\[\].class44CumulativeUseDeterminedCapitalCost. It is one fact for the Class 44 pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class44UseDeterminedCapitalCostInYear` | null \| number \| string |  | The cohort's own assetData\[\].class44UseDeterminedCapitalCostInYear. It is one fact for the Class 44 pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].class6ParagraphKClass1OpeningUcc` | null \| number \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value that is not a non-negative amount is refused, as on a row. Only the automatic Class 3 or 6 paragraph (k) split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].class6ParagraphKClass1PriorCcaHistoryConfirmed` | boolean \| null \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value other than true, false, Yes or No is refused, as on a row. Only the automatic Class 3 or 6 paragraph (k) split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].class6Post1978BuildingEligibilityMet` | boolean \| null \| string |  | The cohort's own assetData\[\].class6Post1978BuildingEligibilityMet, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].closingCost` | null \| number \| string |  | The cohort's own assetData\[\].closingCost, read on this cohort's property unit (its slice of the row's additions) in the class computation and the Class 10.1, 1-NRB and 1-MP property count; see that field. As on a row, a positive closingCost with an assetCount of 0 is refused. With one cohort a blank takes the row's value; with several cohorts the row's value is not used for the cohorts. |
| `assetData[].additionCohorts[].cohortId` | array \| boolean \| null \| number \| object \| string |  | Identifier of this cohort, as text. The CCA computation does not read it. A current-year ITA 247(2.1) capital-cost adjustment to a row that has cohorts must name an acquisition cohort matching exactly one cohortId on that row, or the request is refused. An adjustment that names a cohort on a row with no cohorts is also refused. The cohort's amount and its acquisitionDate (the row's when blank) must match the adjustment's stated cost and date, or the request is refused. The adjustment then sets that cohort's amount to the adjusted cost and moves the row's additions by the same difference. |
| `assetData[].additionCohorts[].costIncurredTaxationYearEndDate` | array \| boolean \| null \| number \| object \| string |  | Not used on a cohort. The engine reads it only for a continuing Class 13 cost item stated by propertyCapitalCost, which a cohort cannot carry because every cohort is a current-year addition. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].costIncurredTaxationYearStartDate` | array \| boolean \| null \| number \| object \| string |  | Not used on a cohort. The engine reads it only for a continuing Class 13 cost item stated by propertyCapitalCost, which a cohort cannot carry because every cohort is a current-year addition. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].costIncurredTermEndDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].costIncurredTermEndDate, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].deemedAcquiredUnder16_1_1_bInPrecedingYear` | boolean \| null \| string |  | The cohort's own assetData\[\].deemedAcquiredUnder16_1_1_bInPrecedingYear, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].description` | array \| boolean \| null \| number \| object \| string |  | A label for this cohort, as text. It counts among the words of the cohort's property unit, beside the cohort's own assetDescription and account fields and the row's words (with several cohorts, only the row's assetClass); it never replaces the row's description. Those words decide whether the Reg 1102(1) exclusion questions and the Class 10 passenger-vehicle question must be answered or can default; see assetData\[\].description. |
| `assetData[].additionCohorts[].disposedPropertyAcquiredBefore2017` | boolean \| null \| string |  | The cohort's own assetData\[\].disposedPropertyAcquiredBefore2017, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].disposedPropertyDeemed13_40Amount` | null \| number \| string |  | The cohort's own assetData\[\].disposedPropertyDeemed13_40Amount, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].disposedPropertyIsGoodwill` | boolean \| null \| string |  | The cohort's own assetData\[\].disposedPropertyIsGoodwill, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].disposedPropertyOriginalCost` | null \| number \| string |  | The cohort's own assetData\[\].disposedPropertyOriginalCost for a disposition stated on the cohort, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. Schedule 6's ITA 13(21.1) land reallocation and the ITA 110.1(1)(a) gift-recapture check read the cohort's disposition on its unit, as a row's. |
| `assetData[].additionCohorts[].disposedPropertyPost2016DeemedCostParagraph` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].disposedPropertyPost2016DeemedCostParagraph, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value, and the paragraph's operand (disposedPropertyDeemed13_40Amount or disposedPropertyRolloverTransferorDeemedCost) is the cohort's, or the row's where the cohort leaves it blank. With several cohorts the row's value is not used, so a blank stays blank, and each cohort states its own operand, which the row may not (refused). A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].disposedPropertyRolloverTransferorDeemedCost` | null \| number \| string |  | The cohort's own assetData\[\].disposedPropertyRolloverTransferorDeemedCost, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].dispositionAcquirerReg1100_2_2_hApplies` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].dispositionAcquirerReg1100_2_2_hApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].dispositionIsArmsLength` | boolean \| null \| string |  | The cohort's own assetData\[\].dispositionIsArmsLength, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].dispositionIsGiftToQualifiedDonee` | boolean \| null \| string |  | The cohort's own assetData\[\].dispositionIsGiftToQualifiedDonee, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition amounts, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].dispositionOutlaysAndExpenses` | null \| number \| string |  | The cohort's own assetData\[\].dispositionOutlaysAndExpenses, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. |
| `assetData[].additionCohorts[].dispositionReconciliationId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].dispositionReconciliationId, the ID that links this cohort's disposition to its Schedule 6 rows; see that field. With one cohort a blank takes the row's ID and then the row's own key, and a cohort ID that differs from the row's key breaks the link. With several cohorts the row's ID and key are not used and cohortId is not a fallback. A disposing cohort then links only through its own ID, so a blank leaves its Schedule 6 rows unlinked and the Schedule 6 evidence incomplete. Schedule 31 reads only the row's ID. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleCapitalPropertyBefore2017` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleCapitalPropertyBefore2017, read on this cohort's property unit the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGenerationEnergyTransmittedPct` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].eligibleGenerationEnergyTransmittedPct, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].eligibleGreenhouseElectionMade` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseElectionMade, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still resolved as the row's pool identity: a row Yes without the row's own propertyId, or outside Class 6 or 8, is refused even when every cohort answers. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseLocatedInCanada` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseLocatedInCanada, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseNoPriorCcaOrTerminalLossDeduction` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseNoPriorCcaOrTerminalLossDeduction, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseNoPriorDeemedCcaOrUccReduction` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseNoPriorDeemedCcaOrUccReduction, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseNoPriorOwnershipByTaxpayerOrNonArmsLengthPerson` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseNoPriorOwnershipByTaxpayerOrNonArmsLengthPerson, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhousePreNovember4_2025UndeductedCapitalCost` | null \| number \| string |  | The cohort's own assetData\[\].eligibleGreenhousePreNovember4_2025UndeductedCapitalCost, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative amount is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseQualificationAvoidancePurpose` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseQualificationAvoidancePurpose, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseReg1102_28ElectionOut` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseReg1102_28ElectionOut, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseScheduleIIClassConditionMet` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseScheduleIIClassConditionMet, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleGreenhouseUnderConstructionOnNovember4_2025` | boolean \| null \| string |  | The cohort's own assetData\[\].eligibleGreenhouseUnderConstructionOnNovember4_2025, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].eligibleLiquefactionActivitiesIncomeBeforeCca` | null \| number \| string |  | The cohort's own assetData\[\].eligibleLiquefactionActivitiesIncomeBeforeCca, one facility-level amount (0 when nil). Every value stated on the facility's rows and cohorts, in its Class 1 and Class 47 pools, must agree (refused, naming each input), a value stated anywhere on the facility applies to both pools, and a facility with none holds filing readiness for the additional allowance. With one cohort a blank takes the row's value; with several the row's value is not used. As on a row, a negative amount is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].evChargingStationContinuousPowerKw` | null \| number \| string |  | The cohort's own assetData\[\].evChargingStationContinuousPowerKw, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative value is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].firstRenewalEndDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].firstRenewalEndDate, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].gifiDescription` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].gifiDescription, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].hasLeaseRenewalOption` | boolean \| null \| string |  | The cohort's own assetData\[\].hasLeaseRenewalOption, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].hasRenewalTermAfterCostIncurredTerm` | boolean \| null \| string |  | The cohort's own assetData\[\].hasRenewalTermAfterCostIncurredTerm, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].importedCcaPoolId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].importedCcaPoolId, as text. A cohort carrying it is pooled in that imported sub-pool of its class. The value must be text, start with the cohort's ccaClass and a hyphen, equal the cohort's propertyId, and agree with any separate-class fact that sets the cohort's pool, or the request is refused. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a cohort joins the sub-pool only with its own value and propertyId. The row's own value is still checked as the row's pool identity: a row value that does not equal the row's own propertyId is refused even when every cohort is blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].incorporationCostExcessAddition` | null \| number \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value that is not a non-negative amount is refused, as on a row. The ITA 20(1)(b) Class 14.1 incorporation-cost reconciliation reads this only on the parent rows, against each row's own additions; a valid value on a cohort is ignored. |
| `assetData[].additionCohorts[].isAIIP` | boolean \| null \| string |  | The cohort's own assetData\[\].isAIIP answer: whether this slice is AIIP (Reg 1104(4)) or, acquired after 2024, RIIP (Reg 1104(4.01)). With one cohort a blank takes the row's answer; with several it stays blank. Outside Classes 54 to 56, an elected greenhouse and the Schedule IV to VI resource pools, a blank is refused where the cohort's own dates fall in the AIIP or RIIP window, and Yes outside both windows is refused. In a Schedule IV to VI resource pool a blank is not refused. Where that pool's accelerated factor is in issue, the pool takes one answer: one stated on any of its rows or cohorts governs the whole pool, all stated answers must agree (refused otherwise), and the pool's allowance is held only when none states one. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isAdditionOrAlterationToGreenhouse` | boolean \| null \| string |  | The cohort's own assetData\[\].isAdditionOrAlterationToGreenhouse, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isAiipSolelyBecauseOfReg1104_4_b_i` | boolean \| null \| string |  | The cohort's own assetData\[\].isAiipSolelyBecauseOfReg1104_4_b_i answer for its slice; see that field. It is asked only where the cohort is AIIP acquired before 2025, outside Classes 54 to 56, and a blank there holds the class. With one cohort a blank takes the row's answer; with several cohorts the row's answer is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isAncillaryToElectricVehicleChargingStations` | boolean \| null \| string |  | The cohort's own assetData\[\].isAncillaryToElectricVehicleChargingStations, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isBuilding` | boolean \| null \| string |  | The cohort's own assetData\[\].isBuilding, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts Schedule 8 does not use the row's value, so a blank stays blank. On Class 43.1 or 43.2 a stated value makes claimsEligibleTransmissionEquipment required on the unit, and each of several cohorts states its own (the row may not). Schedule 31 reads only the row's isBuilding, never a cohort's. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isDIEP` | boolean \| null \| string |  | The cohort's own assetData\[\].isDIEP designation for its slice; see that field. With one cohort a blank takes the row's answer. With several cohorts a blank stays blank. A blank is refused where the cohort meets the Reg 1104(3.1) CCPC, class and date gates, except in a Schedule IV to VI resource pool, where a blank is not read. True outside those gates is refused everywhere. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isDiepSolelyBecauseOfReg1104_3_1_c_i` | boolean \| null \| string |  | The cohort's own assetData\[\].isDiepSolelyBecauseOfReg1104_3_1_c_i answer for its slice; see that field. It is asked only where the cohort is designated DIEP, and a blank there holds the class. With one cohort a blank takes the row's answer; with several cohorts the row's answer is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isElectricVehicleChargingStation` | boolean \| null \| string |  | The cohort's own assetData\[\].isElectricVehicleChargingStation, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isFormerPropertyDeemedOwnedUnder13_4_3` | boolean \| null \| string |  | The cohort's own assetData\[\].isFormerPropertyDeemedOwnedUnder13_4_3, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still resolved as the row's pool identity: a row Yes without the row's own propertyId is refused even when every cohort answers. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isGreenhouse` | boolean \| null \| string |  | The cohort's own assetData\[\].isGreenhouse, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isIndustrialMineralMineOrRight` | boolean \| null \| string |  | The cohort's own assetData\[\].isIndustrialMineralMineOrRight. It is read only on a Schedule V resource pool, as one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and anything but Yes holds the pool's allowance. It is not read on a Schedule IV or VI pool or an ordinary class. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isInventory` | boolean \| null \| string |  | The cohort's own assetData\[\].isInventory, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isLand` | boolean \| null \| string |  | The cohort's own assetData\[\].isLand, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts Schedule 8 does not use the row's value, so a blank stays blank. Schedule 31 reads only the row's isLand, never a cohort's, and still reads the row's value when the row has several cohorts. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isLeasingProperty` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].isLeasingProperty; see that field. The coverage review reads it on each property unit, the cohort's included, so a Yes on the cohort marks the leasing-property rules for review. With one cohort a blank takes the row's value. It is not otherwise read. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isNewPurposeBuiltResidentialRental` | boolean \| null \| string |  | The cohort's own assetData\[\].isNewPurposeBuiltResidentialRental, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several the row's value does not reach the cohorts. A Yes needs a propertyId for the unit (refused otherwise) and gives the cohort its own Reg 1101(1ac.1) class. The coverage review counts the purpose-built rental rules resolved once such a class exists and every building-class row and cohort answers this question. A row Yes is also resolved as the row's pool identity, refused without its own propertyId. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isPassengerVehicle` | boolean \| null \| string |  | The cohort's own assetData\[\].isPassengerVehicle, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isPassengerVehicleAcquiredNonArmsLength` | boolean \| null \| string |  | The cohort's own assetData\[\].isPassengerVehicleAcquiredNonArmsLength, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isPatentOrRightToUsePatentedInformation` | boolean \| null \| string |  | The cohort's own assetData\[\].isPatentOrRightToUsePatentedInformation, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank and holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isReg1101_5k_1CanadianFilmProduction` | boolean \| null \| string |  | The cohort's own assetData\[\].isReg1101_5k_1CanadianFilmProduction, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still resolved as the row's pool identity: a row Yes on a row whose class is not Class 10 is refused even when every cohort answers. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isRiipSolelyBecauseOfReg1104_4_01_b_i` | boolean \| null \| string |  | The cohort's own assetData\[\].isRiipSolelyBecauseOfReg1104_4_01_b_i answer for its slice; see that field. It is asked only where the cohort is RIIP (acquired after 2024), outside Classes 54 to 56, and a blank there holds the class. With one cohort a blank takes the row's answer; with several cohorts the row's answer is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isSeparateClassRentalPropertyReg1101_1ac` | boolean \| null \| string |  | The cohort's own assetData\[\].isSeparateClassRentalPropertyReg1101_1ac, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still resolved as the row's pool identity: a row Yes without the row's own propertyId, or beside the row's separateClassBusinessId, is refused even when every cohort answers. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isSeparateClassUnderITA37_6` | boolean \| null \| string |  | The cohort's own assetData\[\].isSeparateClassUnderITA37_6, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. True gives the cohort its own pool keyed by its propertyId. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].isSystemsSoftware` | boolean \| null \| string |  | The cohort's own assetData\[\].isSystemsSoftware, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isTimberLimitOrCuttingRight` | boolean \| null \| string |  | The cohort's own assetData\[\].isTimberLimitOrCuttingRight. It is read only on a Schedule VI resource pool, as one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and anything but Yes, or an isTimberResourceProperty other than No, holds the pool's allowance. It is not read on a Schedule IV or V pool or an ordinary class. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isTimberResourceProperty` | boolean \| null \| string |  | The cohort's own assetData\[\].isTimberResourceProperty. In an ordinary class it is read per cohort for the cohort's own disposition (element G instead of F, no Schedule 6 gain route). In a Schedule IV or VI resource pool every value stated on the pool's rows and cohorts must agree (refused otherwise). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isVessel` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].isVessel, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value, and canadianVesselCapitalCost is the cohort's, or the row's where the cohort leaves it blank. With several the row's values do not reach the cohorts, so a blank stays blank and each qualifying vessel cohort states its own cost. The row's own vessel answers are still resolved as the row's pool identity: a row meeting every Reg 1101(2a) condition without its own propertyId is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isYachtCampLodgeGolfCourseOrFacility` | boolean \| null \| string |  | The cohort's own assetData\[\].isYachtCampLodgeGolfCourseOrFacility, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isZeroEmissionPassengerVehicle` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].isZeroEmissionPassengerVehicle, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. With several cohorts, a cohort answered Yes whose amount exceeds one Reg 7307(1.1) prescribed amount must state cappedVehicleCount. The row's assetCount and the one-vehicle default are not used for it, and without it the class is held. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].isZeroEmissionVehiclePerITA248` | boolean \| null \| string |  | The cohort's own assetData\[\].isZeroEmissionVehiclePerITA248, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank and holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].leaseEndDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].leaseEndDate, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].lifeExpiryDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].lifeExpiryDate, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].liquefactionFacilityId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].liquefactionFacilityId, which keys the cohort's LNG facility pool; see that field. A cohort under a liquefaction rule needs one (refused otherwise). A facility's Class 1-LNG or 47-LNG pool holds every row and cohort of that facility and class; two of them with the same propertyId are refused. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].liquefactionReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].liquefactionReg1101SeparateClass, which places the cohort in its LNG facility's prescribed class; see that field. A Class 1-LNG or 47-LNG pool takes exactly one W08 row or cohort, so a second row or cohort for the same facility and class is refused. With one cohort a blank takes the row's value; with several it stays blank. The coverage review reads the cohort's selection as well as the rows', so a selection on either needs the review's other-separate-class answer Yes. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].meetsClass56UsedPropertyCondition` | boolean \| null \| string |  | The cohort's own assetData\[\].meetsClass56UsedPropertyCondition, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank and holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].mineCcaSources` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].mineCcaSources list. Where a pool's CCA is attributed among member mines, every row and cohort of the pool must carry the same list (differing lists are refused), and a row or cohort without one holds filing readiness. With one cohort a blank takes the row's list; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].mineId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].mineId, which keys the cohort's mining pool; see that field. A cohort under a mining rule needs one (refused otherwise), and each mining pool must state one consistent mineId. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].mineIncomeBeforeCca` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].mineIncomeBeforeCca, one annual amount for the mine or mine group: every value stated on the pool's rows and cohorts must agree (refused otherwise), and it is refused where the pool's rule is Not applicable. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].mineOrdinaryCcaAllocation` | null \| number \| string |  | The cohort's own assetData\[\].mineOrdinaryCcaAllocation: this cohort's share of an ordinary class's CCA claim attributed to a mine. Where the class's claim must be split among mines, every row and cohort must state one and they must add up to the class claim, or filing readiness is held. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].mineReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].mineReg1101SeparateClass, which places the cohort in its mine's prescribed class; see that field. All values stated in one Class 28, 41, 41.1 or 41.2 pool must agree (refused otherwise), and a pool with property and no answer holds the class. With one cohort a blank takes the row's value; with several it stays blank. The coverage review reads the cohort's selection as well as the rows', so a selection on either needs the review's other-separate-class answer Yes. A row selection without the row's own mineId is refused even when the row has several cohorts. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].minimumContinuousPowerKwOfServedEvChargingStations` | null \| number \| string |  | The cohort's own assetData\[\].minimumContinuousPowerKwOfServedEvChargingStations, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative value is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].nextSucceedingTermEndDate` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].nextSucceedingTermEndDate, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].nonArmsLengthTransferorCostAmount` | null \| number \| string |  | The cohort's own assetData\[\].nonArmsLengthTransferorCostAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative amount is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].nonArmsLengthVehicleFairMarketValue` | null \| number \| string |  | The cohort's own assetData\[\].nonArmsLengthVehicleFairMarketValue, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative amount is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].nonRecoverableSalesTaxOnPrescribedLimit` | null \| number \| string |  | The cohort's own assetData\[\].nonRecoverableSalesTaxOnPrescribedLimit, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative amount is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].openingCost` | null \| number \| string |  | The cohort's own assetData\[\].openingCost, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. As on a row, a negative amount is refused. |
| `assetData[].additionCohorts[].openingUCC` | null \| number \| string |  | The cohort's own assetData\[\].openingUCC. It does not add to any pool's opening UCC, which comes from the parent rows' openingUCC or from pyUCCPools. A cohort always holds property through its positive amount, so this value is not needed for that. It is read only in Class 13, when the opening pool needs a reviewed ccaOverrides claim and another property in the pool states propertyCapitalCost; a stated value then counts toward the part of the opening balance not tied to an itemized cost item, which caps that claim. As on a row, a negative amount is refused. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].passengerVehicleCostToTaxpayer` | null \| number \| string |  | The cohort's own assetData\[\].passengerVehicleCostToTaxpayer, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].postNovember20_2018DeemedDeductionAmount` | null \| number \| string |  | The cohort's own assetData\[\].postNovember20_2018DeemedDeductionAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].postTwentyTwentyFourDeemedDeductionAmount` | null \| number \| string |  | The cohort's own assetData\[\].postTwentyTwentyFourDeemedDeductionAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].preApril19_2021ExpenditureAmount` | null \| number \| string |  | The cohort's own assetData\[\].preApril19_2021ExpenditureAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].preNovember21_2018ExpenditureAmount` | null \| number \| string |  | The cohort's own assetData\[\].preNovember21_2018ExpenditureAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].preTwentyTwentyFiveExpenditureAmount` | null \| number \| string |  | The cohort's own assetData\[\].preTwentyTwentyFiveExpenditureAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].prescribedVehicleCapitalCostLimit` | null \| number \| string |  | The cohort's own assetData\[\].prescribedVehicleCapitalCostLimit, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].priorCcaClaimed` | array \| boolean \| null \| number \| object \| string |  | Not used on a cohort. The engine reads it only beside propertyCapitalCost for a continuing Class 13 or 14 cost item, which a cohort cannot carry because every cohort is a current-year addition. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].proceedsOfDisposition` | null \| number \| string |  | The cohort's own assetData\[\].proceedsOfDisposition, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. Schedule 8's class computation and its recapture on gifts check read it there, and Schedule 6's ITA 13(21.1) land reallocation takes it as the building proceeds of the unit its land row links to. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. |
| `assetData[].additionCohorts[].propertyCapitalCost` | array \| boolean \| null \| number \| object \| string |  | Refused on a cohort outside a Schedule IV-VI resource pool. It states a prior-year Class 13 or 14 cost item, while every cohort is a current-year addition, so a cohort carrying it, or inheriting it from a one-cohort row, is refused. A resource pool does not read it. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].propertyGroupId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].propertyGroupId, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. Schedule 8's ITA 13(21.1) building reallocation and Schedule 6's link from the land row both read the unit, so a land row with this ID links to this cohort. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].propertyId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].propertyId, as text. With one cohort a blank takes the row's ID, or the row's own identity; with several the cohort does not take the row's ID. A cohort without its own ID then holds an ordinary pool, and is refused where a property-level separate class needs one (such as a Reg 1101(1ac) rental, Canadian vessel or resource property). Two cohorts with one ID hold an ordinary pool, are refused in a per-property class, and are two parts of one Schedule IV pool. The ID keys the cohort's separate class and its available-for-use workpaper link (ITA 13(26)); the ITA 247(2.1) match reads only the row's. |
| `assetData[].additionCohorts[].propertyIdentityConfirmed` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].propertyIdentityConfirmed, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].propertyIdentityIsProvisional` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].propertyIdentityIsProvisional, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. |
| `assetData[].additionCohorts[].purposeBuiltResidentialRentalThroughoutYear` | boolean \| null \| string |  | The cohort's own assetData\[\].purposeBuiltResidentialRentalThroughoutYear. It is one fact for the rental's Reg 1101(1ac.1) pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].railwayCommonCarrierOwnedAndOperatedThroughoutYear` | boolean \| null \| string |  | The cohort's own assetData\[\].railwayCommonCarrierOwnedAndOperatedThroughoutYear. It is one fact for the railway pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].railwayReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].railwayReg1101SeparateClass. Schedule 8 reads it on this cohort's property unit (its slice of the row's additions) for the railway pool and its additional allowance, the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used for the cohort, so a blank stays blank. The Schedule 8 coverage review reads each property unit, the cohort's included, so a railway class stated on the cohort raises the other prescribed separate class review, and its conflict with a No answer. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].railwayReg1101_5dAnnualClassConditionsMet` | boolean \| null \| string |  | The cohort's own assetData\[\].railwayReg1101_5dAnnualClassConditionsMet. It is one fact for the railway pool: the first non-blank value across the pool's rows and cohorts is used, and later values are not read. With one cohort a blank takes the row's value; with several the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_0_3And2_02ExcludedExpenditureOverlapAmount` | null \| number \| string |  | The cohort's own assetData\[\].reg1100_0_3And2_02ExcludedExpenditureOverlapAmount, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. Where the row's cost is split automatically between classes, a single cohort's value is prorated with its amount. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_0_3InventoryTransferExceptionApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1100_0_3InventoryTransferExceptionApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_16SpecifiedLeasingPropertyThroughoutYear` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1100_16SpecifiedLeasingPropertyThroughoutYear. Schedule 8's class computation reads it on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used for the cohort, so a blank stays blank. The Schedule 8 coverage review reads each property unit, the cohort's included, so a Yes on the cohort raises the specified-leasing and leasing-property reviews. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_2_021InventoryTransferExceptionApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1100_2_021InventoryTransferExceptionApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_2_02InventoryTransferExceptionApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1100_2_02InventoryTransferExceptionApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1100_2_2NonArmsLengthContinuityApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1100_2_2NonArmsLengthContinuityApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1101IncomeSourceType` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].reg1101IncomeSourceType. Schedule 8 reads it on this cohort's property unit (its slice of the row's additions) for the Reg 1101(1) and (1ac) pool identity and holds, the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used for the cohort, so a blank stays blank. The Schedule 8 coverage review reads each property unit, the cohort's included, so Property on the cohort brings in its rental questions. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14Class41SpecialRulesApply` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1102_14Class41SpecialRulesApply, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A blank where the transferor's class is 41 holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14Class41SplitRole` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].reg1102_14Class41SplitRole, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused); on the single cohort of a row that split divides any role is refused, since the split assigns each portion its role. With one cohort a blank takes the row's value; with several it stays blank. Text other than class41 or remainder is refused. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14Class41SplitSubsection` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].reg1102_14Class41SplitSubsection, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A cohort whose role, subsection and class do not match holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14ClassContinuityApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1102_14ClassContinuityApplies, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split and the automatic Class 3 or 6 paragraph (k) split read only the row's own value, and a row needing either split cannot carry more than one cohort (refused). A row needing the paragraph (k) split is refused unless the row itself answers No, whatever its cohort says. With one cohort a blank takes the row's value; with several it stays blank. A blank left on a cohort holding property holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14TransferorCcaClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].reg1102_14TransferorCcaClass, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A blank where continuity applies holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14TransferorClass41UccImmediatelyBeforeDisposition` | null \| number \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value that is not a non-negative amount is refused, as on a row. Only the automatic Reg 1102(14.11)/(14.12) Class 41 split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].reg1102_14TransferorClass41UccReductionOnDisposition` | null \| number \| string |  | Not used on a cohort beyond the value checks every cohort passes: a value that is not a non-negative amount is refused, as on a row. Only the automatic Reg 1102(14.11)/(14.12) Class 41 split reads it, from the row's own value; a valid value on a cohort is ignored, and a row that needs the split cannot carry more than one cohort (refused). |
| `assetData[].additionCohorts[].reg1102_14TransferorPropertyWasSeparateClass` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1102_14TransferorPropertyWasSeparateClass, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A blank where continuity applies holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_14TransferorSeparateClassId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].reg1102_14TransferorSeparateClassId, read on the cohort's property unit by the Reg 1102(14) continuity check and its pool identity; see that field. The automatic Class 41 split reads only the row's own value, and a row needing it cannot carry more than one cohort (refused). With one cohort a blank takes the row's value; with several it stays blank. A blank where the transferor's class was separate holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_1_eListedArtOrAntiqueExclusionApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1102_1_eListedArtOrAntiqueExclusionApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A null is checked for art words in the unit's labels: the row's labels (with several cohorts, only its assetClass) overlaid by the cohort's own label fields, plus the cohort's description, so art named only there holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].reg1102_5Or5_1BuildingLeaseholdApplies` | boolean \| null \| string |  | The cohort's own assetData\[\].reg1102_5Or5_1BuildingLeaseholdApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].replacementPropertyElection` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].replacementPropertyElection, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].resourceAllowancePreviouslyGranted` | boolean \| null \| string |  | The cohort's own assetData\[\].resourceAllowancePreviouslyGranted; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceAllowanceSchedule` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].resourceAllowanceSchedule (IV, V or VI). It makes the cohort a part of a resource pool keyed by its ccaClass and propertyId; every row and cohort in the pool must state the same schedule, and the pool cannot mix with ordinary rows (refused otherwise). Schedule V and VI pools take one row unless the section 4 election is made. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceCapitalCost` | null \| number \| string |  | The cohort's own assetData\[\].resourceCapitalCost. In a Schedule IV-VI resource pool it is one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and that one value answers for the pool. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceEstimateOrCapitalCostChanged` | boolean \| null \| string |  | The cohort's own assetData\[\].resourceEstimateOrCapitalCostChanged; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceHypotheticalOpeningUccWithoutEnhancement` | null \| number \| string |  | The cohort's own assetData\[\].resourceHypotheticalOpeningUccWithoutEnhancement. In a Schedule IV pool with opening UCC it is one pool fact that must agree on every row and cohort stating it (refused otherwise). Schedules V and VI read it from the pool's single row, so there only one cohort can carry it. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceMostRecentRatePerUnit` | null \| number \| string |  | The cohort's own assetData\[\].resourceMostRecentRatePerUnit; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceOriginalQuantity` | null \| number \| string |  | The cohort's own assetData\[\].resourceOriginalQuantity; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourcePartHypotheticalUccBeforeAllowance` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].resourcePartHypotheticalUccBeforeAllowance. In a Schedule IV pool with more than one part (rows and cohorts) whose pre-enhancement UCC differs, each part states its own share; a blank holds the pool, and the shares must add up to the pool's pre-enhancement UCC (refused otherwise). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourcePartUccBeforeAllowance` | null \| number \| string |  | The cohort's own assetData\[\].resourcePartUccBeforeAllowance. In a Schedule IV pool with more than one part (rows and cohorts), each part states its own share of the pool's UCC before the allowance; a blank holds the pool, and the shares must add up to that UCC (refused otherwise). With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourcePreviousRateUsedFirstClaimFormula` | boolean \| null \| string |  | The cohort's own assetData\[\].resourcePreviousRateUsedFirstClaimFormula; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourcePriorSurveyCruiseMapDeductions` | null \| number \| string |  | The cohort's own assetData\[\].resourcePriorSurveyCruiseMapDeductions; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceQuantityAtStart` | null \| number \| string |  | The cohort's own assetData\[\].resourceQuantityAtStart. In a Schedule IV pool each row and cohort is a separate part and this is read per part; a blank holds the pool. Schedules V and VI read it from the pool's single row. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceQuantityCutOrMined` | null \| number \| string |  | The cohort's own assetData\[\].resourceQuantityCutOrMined. In a Schedule IV pool each row and cohort is a separate part and this is read per part; a blank holds the pool. Schedules V and VI read it from the pool's single row. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceQuantityUnit` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].resourceQuantityUnit, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceResidualValue` | null \| number \| string |  | The cohort's own assetData\[\].resourceResidualValue. In a Schedule IV-VI resource pool it is one fact for the pool: every value stated on the pool's rows and cohorts must agree (refused otherwise), and that one value answers for the pool. With one cohort a blank takes the row's value; with several the row's value is not used. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].resourceSaleProceedsForSection4Election` | null \| number \| string |  | The cohort's own assetData\[\].resourceSaleProceedsForSection4Election, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. It is one amount for the resource pool, so values on the pool's rows and cohorts must agree. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].resourceSection4AlternativeElection` | boolean \| null \| string |  | The cohort's own assetData\[\].resourceSection4AlternativeElection, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. It is one answer for the resource pool, so values on the pool's rows and cohorts must agree. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].resourceSurveyCruiseMapCosts` | null \| number \| string |  | The cohort's own assetData\[\].resourceSurveyCruiseMapCosts; see that field. Schedules V and VI read it from the pool's one row, and without the section 4 election a pool with more than one row or cohort is refused, so only a single cohort can carry it, taking a blank from its row. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].rolloverElectionApplies` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].rolloverElectionApplies, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].s247CapitalCost` | null \| number \| string |  | Not used on a cohort. The ITA 247(2.1) capital-cost adjustment reads s247CapitalCost only on the parent row it matches by propertyId and ccaClass, and the opening-pool step reads it only on parent rows; a value on a cohort is ignored. A cohort is reached only through its cohortId. |
| `assetData[].additionCohorts[].section110_6_21CapitalCostReduction` | null \| number \| string |  | The cohort's own assetData\[\].section110_6_21CapitalCostReduction, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].section13_21_1BuildingCostAmount` | null \| number \| string |  | The cohort's own assetData\[\].section13_21_1BuildingCostAmount, read on this cohort's property unit (its slice of the row's additions) by Schedule 8 and by Schedule 6's linked land row, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_21_1BuildingFairMarketValue` | null \| number \| string |  | The cohort's own assetData\[\].section13_21_1BuildingFairMarketValue, read on this cohort's property unit (its slice of the row's additions) by Schedule 8 and by Schedule 6's linked land row, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_21_1HistoricalNecessaryLandOwnership` | boolean \| null \| string |  | The cohort's own assetData\[\].section13_21_1HistoricalNecessaryLandOwnership, read on this cohort's property unit (its slice of the row's additions) by Schedule 8 and by Schedule 6's linked land row, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson` | boolean \| null \| string |  | The cohort's own assetData\[\].section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson, read on this cohort's property unit (its slice of the row's additions) by Schedule 8 and by Schedule 6's linked land row, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_21_1LandRelationshipExists` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].section13_21_1LandRelationshipExists, read on this cohort's property unit (its slice of the row's additions) by Schedule 8 and by Schedule 6's linked land row, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_4Election` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].section13_4Election, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section13_4_1Election` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].section13_4_1Election, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].section149DispositionOfEveryPropertyInClass` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].section149DispositionOfEveryPropertyInClass. A JSON true on any row or cohort of the pool sets the pool's property remaining to nil, not just this slice, unless an ITA 13(21.2) stop-loss suspension is still outstanding. A Yes string is not read as true. A Schedule IV to VI resource pool does not read it. With one cohort a blank takes the row's value; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].section37DeductionAllowedForAcquisitionExpenditure` | boolean \| null \| string |  | The cohort's own assetData\[\].section37DeductionAllowedForAcquisitionExpenditure, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A null is checked for research words in the unit's labels: the row's labels (with several cohorts, only its assetClass) overlaid by the cohort's own label fields, plus the cohort's description, so research named only there holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].section44Election` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].section44Election, read on this cohort's property unit (its slice of the row's additions) beside the cohort's own disposition, the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].separateClassBusinessId` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].separateClassBusinessId, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].similarPropertyAcquiredWithin24MonthsAndStillOwned` | boolean \| null \| string |  | The cohort's own assetData\[\].similarPropertyAcquiredWithin24MonthsAndStillOwned, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].storageEnergyConditionMet` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].storageEnergyConditionMet, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].storageExcludedCategory` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].storageExcludedCategory, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].storageFixedLocation` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].storageFixedLocation, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].storagePrimaryPurposeConfirmed` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].storagePrimaryPurposeConfirmed, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].subsection39ExcludedDispositionApplies` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].subsection39ExcludedDispositionApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].taxUccReductionOnDisposition` | null \| number \| string |  | The cohort's own assetData\[\].taxUccReductionOnDisposition. Schedule 8's class computation reads it on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may not carry disposition amounts itself (refused), but each cohort may state its own. The recapture on gifts check reads the cohort's unit too, so a reduction stated on a cohort makes it ask that cohort's dispositionIsGiftToQualifiedDonee. |
| `assetData[].additionCohorts[].transferorCapitalCostImmediatelyBefore` | null \| number \| string |  | The cohort's own assetData\[\].transferorCapitalCostImmediatelyBefore, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].transferorProceedsOfDisposition` | null \| number \| string |  | The cohort's own assetData\[\].transferorProceedsOfDisposition, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].transferorSection110_6Deductions` | null \| number \| string |  | The cohort's own assetData\[\].transferorSection110_6Deductions, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].transferorWasCanadianResidentIndividualOrQualifyingPartnership` | boolean \| null \| string |  | The cohort's own assetData\[\].transferorWasCanadianResidentIndividualOrQualifyingPartnership, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].transmittedEnergyFromEligibleGenerationPct` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].transmittedEnergyFromEligibleGenerationPct, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].usedWithEligibleGenerationEquipment` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].usedWithEligibleGenerationEquipment, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. A row with several cohorts may state it only as every cohort does (refused otherwise), so each cohort states its own. |
| `assetData[].additionCohorts[].vesselConstructedInCanada` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].vesselConstructedInCanada, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].vesselNotUsedBeforeAcquisition` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].vesselNotUsedBeforeAcquisition, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still read for the row's own pool identity. There a value other than true, false, Yes or No is refused. A Class 7 row whose own isVessel, vesselConstructedInCanada, vesselRegisteredInCanada and vesselNotUsedBeforeAcquisition are true and whose vesselStructuredFinancingFacilityApplies is false is refused unless the row has its own propertyId. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].vesselRegisteredInCanada` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].vesselRegisteredInCanada, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still read for the row's own pool identity. There a value other than true, false, Yes or No is refused. A Class 7 row whose own isVessel, vesselConstructedInCanada, vesselRegisteredInCanada and vesselNotUsedBeforeAcquisition are true and whose vesselStructuredFinancingFacilityApplies is false is refused unless the row has its own propertyId. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].vesselStructuredFinancingFacilityApplies` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].vesselStructuredFinancingFacilityApplies, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value. With several cohorts the row's value does not reach the cohorts, so a blank stays blank. The row's own value is still read for the row's own pool identity. There a value other than true, false, Yes or No is refused. A Class 7 row whose own isVessel, vesselConstructedInCanada, vesselRegisteredInCanada and vesselNotUsedBeforeAcquisition are true and whose vesselStructuredFinancingFacilityApplies is false is refused unless the row has its own propertyId. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].wasDIEP` | boolean \| null \| string |  | The cohort's own assetData\[\].wasDIEP answer; see that field. Answers are pooled across the class: a true on any row or cohort counts for the class, and differing answers in a Class 10.1 class are refused. With one cohort a blank takes the row's answer; with several it stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].wouldHaveBeenClass53IfAcquiredIn2025` | array \| boolean \| null \| number \| object \| string |  | The cohort's own assetData\[\].wouldHaveBeenClass53IfAcquiredIn2025, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additionCohorts[].wouldOtherwiseBeClass16` | boolean \| null \| string |  | The cohort's own assetData\[\].wouldOtherwiseBeClass16, read on this cohort's property unit (its slice of the row's additions) the same way as on a row; see that field. With one cohort a blank takes the row's value; with several cohorts the row's value is not used, so a blank stays blank and holds the class. A row with several cohorts may state it only as every cohort does (refused otherwise). |
| `assetData[].additions` | null \| number \| string |  | Capital cost of property added to the class this year, as a non-negative amount; null is nil. A positive amount is refused without acquisitionDate and availableForUseDate (a Schedule IV to VI resource row is held instead). On a row other than a resource row, a blank acquiredFromNonArmsLengthPerson holds the class unless jacket boxes 162 and 171 are both No. Any additionCohorts must sum to it exactly. With additionCohorts, the dates and acquiredFromNonArmsLengthPerson are read on each cohort; with several cohorts the row's own values are not used. An assetCount of 0 is refused unless disposition figures show the addition left the class (with one cohort, the cohort's over the row's). |
| `assetData[].affiliatedPersonStopLossApplies` | boolean \| null \| string |  | Whether the ITA 13(21.2) affiliated-person stop-loss applies to this disposition, as true, false or null. True holds the class until affiliatedStopLossDeemedProceeds, proceedsOfDisposition and dispositionOutlaysAndExpenses are all stated. The class is then reduced by the deemed proceeds less outlays, and the excess of deemed over actual proceeds stays in the class as deemed property, which blocks a terminal loss unless a release clause is named. |
| `assetData[].affiliatedStopLossDeemedProceeds` | null \| number \| string |  | ITA 13(21.2)(e)(i) deemed proceeds for a stop-loss disposition, as a non-negative amount; a negative value is refused on any row. The stop-loss computation reads it only when affiliatedPersonStopLossApplies is true, and then a blank holds the class. It must exceed proceedsOfDisposition and may not exceed a stated disposedPropertyOriginalCost, or the request is refused. The class is reduced by it less outlays, and its excess over actual proceeds is kept as deemed property of the class. Like other disposition amounts, a nonzero value on a row with several additionCohorts is refused, whatever affiliatedPersonStopLossApplies says. |
| `assetData[].affiliatedStopLossDeemedPropertyOutstanding` | boolean \| null \| string |  | Whether an ITA 13(21.2)(e)(iii) stop-loss deemed property of this class is still outstanding at year end, as true, false or null. True keeps it owned, so ITA 20(16)(b) allows no terminal loss. For a deemed property carried in from last year, anything but true or a named release clause keeps it owned and holds the class (false alone releases nothing); true together with a release clause also holds the class. Where the pool's prior-year closing cannot show whether a stop-loss was carried, a terminal loss is held until a row answers; there true, false or a named release clause each answers it. |
| `assetData[].affiliatedStopLossDeemedPropertyReleaseClause` | array \| boolean \| null \| number \| object \| string |  | The ITA 13(21.2)(e)(iii) clause (A) to (E) whose time ended a stop-loss deemed property this year, as the clause letter or its option text, or "None by the tax year end"; other text is refused. A named clause releases the deemed property, unless the row also answers affiliatedStopLossDeemedPropertyOutstanding true, which holds the class. On a row with no stop-loss and none carried from an earlier year, a clause holds the class. The exception is a pool whose prior-year closing cannot show whether a stop-loss was carried: there a named clause is read as a release, and it clears that pool's hold before a terminal loss. |
| `assetData[].aggregateCostOfAdditionsAndAlterationsToBuilding` | null \| number \| string |  | Running total cost of all additions and alterations to this building, including earlier years, as a non-negative amount. On a Class 3 or 6 row answering class3Or6PostCapAdditionsAndAlterationsApply true, a blank holds the class and a total below this row's additions is refused. It is tested against the Class 6(k) $100,000 or Class 3(k) ceiling: this year's additions above the ceiling move to Class 3 or Class 1, and a total over the ceiling that is not split holds the class. On a row with several additionCohorts an overflow is refused instead, because the split cannot be divided among cohorts. |
| `assetData[].anyServedEvChargingStationAtLeast90Kw` | boolean \| null \| string |  | For Class 43.2 equipment used primarily with electric vehicle charging stations: whether at least one station it serves supplies 90 kW or more, as true, false or null. Null holds the class; false also holds it, as the equipment then belongs in Class 43.1. Sch II Cl. 43.2(b)(ii). |
| `assetData[].aocCapitalCostOfClass` | null \| number \| string |  | Tax capital cost of the class at an acquisition of control, as a non-negative amount (not book closing cost). Rows of one class must agree, or the request is refused. No amount is computed from it: ITA 111(4)(e) designations use each aocPropertyDesignations entry's own capitalCost. A row with acquisition-of-control cells and no additions, book-cost removal, proceeds, closing cost or assetCount stays out of the CCA continuity. |
| `assetData[].aocDesignatedProceeds` | null \| number \| string |  | Class-level ITA 111(4)(e) designated proceeds at an acquisition of control, as a non-negative amount; conflicting values in one class are refused. The engine computes nothing from it, as paragraph (e) designates single properties. It holds filing readiness when no aocPropertyDesignations entry is applied to the class and the acquisition of control falls after the first day of this taxation year and no later than its last day, or on the day after it ends. It is not read for an acquisition of control on the first day of the year, or when subsection 111(5.5) switches the write-down off (aocBecomesOrCeasesExemptAtEvent true, or aocMainReasonIsToCauseProvisionToApply true with 111(5.1) or no provision named). Where the acquisition of control is the day after the year ends, both subsection 111(5.5) answers must be given first. Where subsection 111(5.5) switches off only the designations (another provision named), aocPropertyDesignations entries are ignored, so the hold applies even when they match. A row with these cells and no other activity stays out of the continuity. |
| `assetData[].aocFmvOfClass` | null \| number \| string |  | Fair market value of all property of the class immediately before an acquisition of control, as a non-negative amount; conflicting values in one class are refused. It sets the ITA 111(5.1) write-down and the ITA 111(4)(e) exclusion test where the acquisition of control falls after the first day of this taxation year and no later than its last day, or on the day after it ends. Without fiscalStart and fiscalEnd nothing is computed. Nothing is computed for an acquisition of control on the first day of the year, because this return is then the post-acquisition stub. Nothing is computed either when subsection 111(5.5) switches the write-down off: aocBecomesOrCeasesExemptAtEvent true, or aocMainReasonIsToCauseProvisionToApply true with 111(5.1) or no provision named in aocMainReasonTargetedProvision. Where the acquisition of control is the day after the year ends, both subsection 111(5.5) answers must be given first. Blank, neither is computed, and filing readiness is held if designations are supplied or the pre-acquisition stub's UCC exceeds the CCA otherwise allowed. |
| `assetData[].assetClass` | array \| boolean \| null \| number \| object \| string |  | Asset class label from the fixed-asset register, as text (for example Computer equipment). It is one of the row's words for the Reg 1102(1) exclusion and Class 10 passenger-vehicle questions, is passed to each cohort of a multi-cohort row, and names the row in the ITA 13(7)(e) deemed-cost notes when it has no description or assetDescription. A label of land, vacant land, raw land or land (non-depreciable) holds the class under Reg 1102(2), as does a blank label with isLand unanswered. |
| `assetData[].assetCount` | null \| number |  | Number of properties this row still holds in the class at year end, as a non-negative JSON integer (anything else is refused). An explicit 0 states that no property remains; 0 is refused with a positive closingCost or with additions the disposition figures do not cover (with one addition cohort, the row's overlaid by the cohort's). Without a count, a row counts one property when it states a positive closingCost or additions its disposition figures do not cover, and none when it states a closingCost of 0 or disposition figures that cover its additions. An ITA 20(16)(b) terminal loss needs every row of the class to count none, by an explicit 0 or either of those. A class that counts no property left but keeps UCC is held when any row without a count states neither a closingCost nor disposition figures covering its additions. On a row with several additionCohorts each cohort's own count is read instead of the row's. A Schedule IV to VI resource pool is held without a count, and its rows must state the same count or the request is refused. |
| `assetData[].assetDescription` | array \| boolean \| null \| number \| object \| string |  | Description of the property, as text. It is one of the row's words that decide whether Reg 1102(1) exclusion questions or the Class 10 passenger-vehicle question must be answered or can default. The ITA 13(7)(e) deemed-cost notes name the row by its words (description first, then assetDescription, then assetClass) with its propertyId. With one addition cohort the cohort takes the row's value unless it states its own. With several, the row's value is not passed to the cohorts; each cohort may state its own. |
| `assetData[].availableForUseByRolling13_27_bOr13_28_c` | boolean \| null \| string |  | Whether the addition became available for use by reason of the ITA 13(27)(b) or 13(28)(c) rolling rule, as true, false or null. True keeps it out of the Reg 1100(2) element F half-year reduction and gives a Class 13 addition its full first-year amount. Null on an addition with no AIIP, RIIP or Class 54 to 56 enhancement, acquired more than 357 days before the year began, applies the half-year reduction and holds filing readiness. A Class 7 Canadian vessel under Reg 1100(1)(v) that became available for use this year and is not AIIP or RIIP is different. There a null holds the class with no allowance whatever the acquisition date, and true selects the one-third rate instead of one-sixth. |
| `assetData[].availableForUseDate` | array \| boolean \| null \| number \| object \| string |  | Date the property became available for use, as YYYY-MM-DD. On a row with additions it is required, may not precede acquisitionDate and must fall within this taxation period, or the request is refused (a Schedule IV to VI resource row missing it is held instead). It sets the first-year factor and the immediate-expensing (DIEP) gate, and the in-period rule means an addition enters UCC only in the year the property becomes available for use (ITA 13(26)). |
| `assetData[].bookCostRemovalSigned` | null \| number \| string |  | Gross book cost removed from the fixed-asset continuity this year, as zero or a negative amount; a positive value is refused. A nonzero value is disposition evidence, so taxUccReductionOnDisposition must then be stated (0 allowed) or the request is refused. Where its size covers the row's additions it shows they left the class, for the ITA 20(16) property count and for an assetCount of 0. Enter the tax reduction in taxUccReductionOnDisposition, not here. |
| `assetData[].buildingNotUsedOrAcquiredForUseByAnyPersonBeforeMarch19_2007` | array \| boolean \| null \| number \| object \| string |  | For a Class 1-NRB or 1-MP building: whether no person or partnership used it, or acquired it for use, before March 19, 2007, as true, false or null. False makes it ineligible for the Reg 1101(5b.1) separate class and holds the class; null holds it when the class has additions this year. Reg 1104(2). |
| `assetData[].businessCeased` | boolean \| null \| string |  | For Class 14.1: whether the business has ceased, as true, false or null. Read when no property of the class remains: true allows the terminal loss, false keeps the pool because ITA 13(34)(a) deems a goodwill property to remain, and null holds filing readiness. Rows of one class must agree. ITA 20(16.1)(c). |
| `assetData[].businessProvidesPropertyForHireOrReward` | boolean \| null \| string |  | Whether the corporation's ordinary business is providing this yacht, camp, lodge or golf property for hire or reward, as true, false or null. Read only when isYachtCampLodgeGolfCourseOrFacility is true; any answer other than true then holds the class, since ITA 18(1)(l) and Reg 1102(1)(f) exclude the property. |
| `assetData[].canadianFilmProductionIncomeBeforeCca` | null \| number \| string |  | For a Class 10 Canadian film or video production in its Reg 1101(5k.1) separate class: the production's income after non-CCA expenses and before this year's CCA, as a non-negative amount. Required on each property row answering isReg1101_5k_1CanadianFilmProduction true (a blank holds the class) and refused on a row answering it false. The rows' amounts are summed as the income that limits the Reg 1100(1)(m) additional allowance. |
| `assetData[].canadianVesselCapitalCost` | null \| number \| string |  | For a Class 7 Canadian vessel in its own Reg 1101(2a) class (isVessel true, every vessel condition met, no structured financing): the vessel's capital cost, as a non-negative amount. The Reg 1100(1)(v) allowance applies its rate to this cost rather than to the opening UCC, capped at the UCC left after any immediate expensing. The class reads the first value any of its rows states. A blank holds the class, and a negative amount is refused. A row with several additionCohorts may state it only as every cohort does (refused otherwise): state it on each vessel's cohort. |
| `assetData[].capitalCostOfBuildingAndAdditionsInClasses3_6_20` | null \| number \| string |  | For a Class 3(k) building addition: capital cost of the building and of every addition or alteration to it in Class 3, 6 or 20, leaving out the paragraph (k) additions being measured, as an amount. The ceiling is the lesser of $500,000 and 25% of it; null holds the class. Also used for the Class 3 share of a Class 6(k) overflow. |
| `assetData[].capitalCostRolloverProvision` | array \| boolean \| null \| number \| object \| string |  | Text: "85(5)" or "97(4)" when this addition was acquired under section 85 or subsection 97(2); any other value is refused, and blank applies neither rule. When the transferor's capital cost immediately before the transfer (transferorCapitalCostImmediatelyBefore, which holds the class when blank) exceeds the agreed amount in the row's additions, the capital cost becomes the transferor's capital cost and the excess is deemed prior CCA (ITA 85(5) or 97(4)). |
| `assetData[].cappedVehicleCount` | array \| boolean \| null \| number \| object \| string |  | For a Class 54 zero-emission passenger vehicle addition: how many vehicles it covers, as a non-negative JSON integer, for the ITA 13(7)(i) per-vehicle cost limit. Read only when the addition exceeds one prescribed amount: a count above one holds the class until each vehicle is its own addition cohort. Blank or 0 falls back to the row's assetCount, then to one vehicle. On a cohort of a multi-cohort row, blank or 0 holds the class. |
| `assetData[].ccaClaimedOverride` | array \| boolean \| null \| number \| object \| string |  | CCA elected for the row's class, as a non-negative amount. Rows of one ccaClass are summed into the class's override, which must equal any ccaOverrides entry for that class and is refused where the class number holds more than one separate class this year. It is refused above the computed maximum; a Class 13 or 14 pool needing manual determination is capped instead at its available UCC (Class 13 also at its known Schedule III ceiling). Without one the engine claims the maximum. |
| `assetData[].ccaClass` | array \| boolean \| null \| number \| object \| string |  | CCA class of the row, as class number text (for example 8, 10.1, 14.1, or a separate-class key such as 1-NRB). Rows are pooled by it, with any separate-class identity, and rated by it; a class outside the engine's catalogue gets no allowance and holds filing readiness. A row without it is refused when it carries additions or another amount the engine checks for sign (canadianVesselCapitalCost among them), bookCostRemovalSigned, assetCount, acquisitionDate, availableForUseDate or most class-determining answers (for example isVessel, isBuilding, isLand or wasDIEP). Other cells on a row without it are ignored, for example ccaClaimedOverride, lifeExpiryDate, leaseEndDate, cappedVehicleCount, acquiredForIncomePurpose or isZeroEmissionPassengerVehicle. A date outside the class's Schedule II acquisition window is refused, or holds the class for a Class 1, 3 or 6 building. |
| `assetData[].changeOfUseEventId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the ITA 13(7)(d) change-of-use event a row records. The engine sets it on the acquisition and disposition rows it derives from the change-of-use workpaper; a submitted row, or any of its addition cohorts, carrying an event ID the workpaper also derives is refused, and a row or cohort carrying one is never the host property for a derived event. |
| `assetData[].claimsClass431ElectricalStorage` | boolean \| null \| string |  | On a Class 43.1 or 43.2 property: whether it claims the Class 43.1(d)(xviii) energy storage limb, as true, false or null; another value is refused. Blank holds the class when the property states a storage fact. True holds the class unless acquisitionDate and availableForUseDate are stated, storageFixedLocation, storagePrimaryPurposeConfirmed and storageEnergyConditionMet are true, and storageExcludedCategory names no exclusion that applies. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].claimsEligibleTransmissionEquipment` | boolean \| null \| string |  | On a Class 43.1 or 43.2 property: whether it claims the eligible transmission equipment inclusion S.C. 2026, c. 3 added to Class 43.1, as true, false or null; another value is refused. Blank holds the class when the property states isBuilding, class431Subparagraph, usedWithEligibleGenerationEquipment, eligibleGenerationEnergyTransmittedPct or transmittedEnergyFromEligibleGenerationPct. True holds the class unless acquisitionDate and availableForUseDate are on or after November 17, 2025, class431Subparagraph names an affected subparagraph, isBuilding is false, usedWithEligibleGenerationEquipment is true and both energy shares exceed 75%. A row with several additionCohorts may state it only as every cohort does (refused otherwise): state it on each cohort, whose property unit must prove those facts itself. |
| `assetData[].class12CostPerItem` | null \| number \| string |  | Capital cost of each individual item of Class 12 paragraph (c), (e) or (h) property, as an amount. Required when class12ParagraphCEHProperty is true (null holds the class); a cost above the $500 per-item ceiling also holds it, as the property belongs in its other class. Sch II Cl. 12(c)/(e)/(h). |
| `assetData[].class12ParagraphCEHProperty` | boolean \| null \| string |  | Whether this Class 12 property is described in Schedule II Class 12 paragraph (c), (e) or (h), as true, false or null. Asked on every Class 12 property; null holds the class. True requires class12CostPerItem for the $500 per-item ceiling. |
| `assetData[].class12ParagraphExcludedFromHalfYear` | array \| boolean \| null \| number \| object \| string |  | Whether this Class 12 addition falls in a paragraph that Reg 1100(2) element F(b)(i) keeps out of the half-year rule (for example a lending-library book, not software under paragraph (o)), as true, false or null. True takes no half-year reduction; null is provisionally reduced and holds the class when the answer would change the claim. |
| `assetData[].class15AcquiredForCuttingAndRemovingMerchantableTimber` | boolean \| null \| string |  | Schedule II Class 15(a) condition for a Schedule IV (Class 15 timber-cutting) resource pool: whether the property was acquired to cut and remove merchantable timber, as true, false or null. Only true establishes Class 15 eligibility; false or null holds the class. Conflicting answers across the pool's rows are refused. |
| `assetData[].class15ElectionToExclude` | boolean \| null \| string |  | Whether the corporation elected to exclude the property from Class 15 under Schedule II Class 15(c), as true, false or null. A Schedule IV (Class 15 timber-cutting) resource pool qualifies only on false; true or null holds the class. Conflicting answers across the pool's rows are refused. |
| `assetData[].class15NoFurtherUseAfterTimberRemoved` | boolean \| null \| string |  | Schedule II Class 15(b) condition for a Schedule IV (Class 15 timber-cutting) resource pool: whether the property has no further use once the timber is removed, as true, false or null. Only true establishes Class 15 eligibility; false or null holds the class. Conflicting answers across the pool's rows are refused. |
| `assetData[].class1Pre1988ScheduleIIEligibilityConfirmed` | boolean \| null \| string |  | For a building added to Class 1 that was acquired before 1988, outside the Class 1(q) building paragraph: true confirms another Class 1 paragraph applies and keeps it in the class; false or null holds the class. Read only where isBuilding is true. |
| `assetData[].class29PriorYearAvailableForUseCapitalCost` | array \| boolean \| null \| number \| object \| string |  | Capital cost of Class 29 property that became available for use in the preceding year, as a non-negative amount; enter 0 when none. Reg 1100(1)(ta)(ii)(B) caps the Class 29 allowance with it, so null claims no Class 29 allowance and holds the class rather than lifting the cap. |
| `assetData[].class29PriorYearDesignatedCapitalCost` | array \| boolean \| null \| number \| object \| string |  | The part of class29PriorYearAvailableForUseCapitalCost that was Reg 1100(1)(ta) designated property, other than designated property acquired in a specified transaction (ITA 85(5), 87(1), 88(1), 97(4), 98(3) or 98(5)), as a non-negative amount; enter 0 when none. Designated property is property Reg 1100(2.1)(g) or (2.2)(j) deems designated and property described in Reg 1100(2) F(b)(iii) to (v) (specified leasing property, ITA 16.1(1)(b) property, property available for use under ITA 13(27)(b) or (28)(c)). Reg 1100(1)(ta)(ii)(B)(II) offsets it at 50% instead of 75%. Where the preceding-year amount is more than 0, null claims no Class 29 allowance and holds the class. With class29PriorYearDesignatedSpecifiedTransactionCapitalCost it cannot exceed class29PriorYearAvailableForUseCapitalCost (refused otherwise). |
| `assetData[].class29PriorYearDesignatedSpecifiedTransactionCapitalCost` | array \| boolean \| null \| number \| object \| string |  | The part of class29PriorYearAvailableForUseCapitalCost that was Reg 1100(1)(ta) designated property acquired in a specified transaction (ITA 85(5), 87(1), 88(1), 97(4), 98(3) or 98(5)), as a non-negative amount; enter 0 when none. Reg 1100(1)(ta)(ii)(B) leaves it out of both the 50% allowance and the offset. Where the preceding-year amount is more than 0, null claims no Class 29 allowance and holds the class. With class29PriorYearDesignatedCapitalCost it cannot exceed class29PriorYearAvailableForUseCapitalCost (refused otherwise). |
| `assetData[].class3Or6OverflowClassOpeningUcc` | null \| number \| string |  | Opening UCC of the class that receives a paragraph (k) overflow (Class 3 for Class 6(k), Class 1 for Class 3(k)), as a non-negative amount; enter 0 when nil. With class3Or6OverflowClassPriorCcaHistoryConfirmed true it is required before the engine splits an overflow, or the request is refused. It must equal the opening UCC pool supplied for that class without a propertyId, if there is one (refused otherwise); pools of that class with a propertyId are not compared. With no such pool, a positive value becomes that class's opening UCC. |
| `assetData[].class3Or6OverflowClassPriorCcaHistoryConfirmed` | boolean \| null \| string |  | Whether the prior-CCA history of the class receiving a Class 3(k) or 6(k) overflow is complete, as true, false or null. The engine splits an overflow only with true and class3Or6OverflowClassOpeningUcc; otherwise the request is refused. On a row with no additions this year, true carries an earlier split forward when opening UCC pools exist for both this class and the receiving class. |
| `assetData[].class3Or6ParagraphKSplitRole` | array \| boolean \| null \| number \| object \| string |  | Marks a row already split under Schedule II Class 3(k)/6(k): source for the portion paragraph (k) admits, overflow for the part in the receiving class. The engine sets it when it splits a row and the value carries forward; a marked row is not split or ceiling-tested again. Any other value is refused. |
| `assetData[].class3Or6PostCapAdditionsAndAlterationsApply` | boolean \| null \| string |  | On a Class 3 or Class 6 property: whether it is an addition or alteration to a building under Schedule II Class 6(k) (after 1978) or 3(k) (after 1987), as true, false or null. Null holds the class. True brings in the dollar ceiling test on aggregateCostOfAdditionsAndAlterationsToBuilding. |
| `assetData[].class3Pre1990TransitionalBuildingConditionMet` | boolean \| null \| string |  | For a building added to Class 3 that was acquired in 1988 or 1989: whether the Schedule II Class 3(a) transitional condition is met, as true, false or null. Anything but true holds the class (move it to Class 1). Read only where isBuilding is true. |
| `assetData[].class431Subparagraph` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsEligibleTransmissionEquipment is true: the Class 43.1 paragraph (d) subparagraph that includes it, as text such as d(v). The test passes only for d(ii), d(v), d(vi), d(vii), d(xiv) or d(xix); any other value, or blank, holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].class43AssetDetails` | array \| boolean \| null \| number \| object \| string |  | For Class 43.1 or 43.2: list of CRA Schedule 8 line 301 to 303 entries, each with assetTypeCode (01 to 20), provinceCode and percentageAllocated (above 0, at most 100); a code or percentage outside those ranges is refused. A class with additions and no complete entry, an entry missing a value, or percentages not totalling 100 holds filing readiness; missing values are never defaulted. |
| `assetData[].class44CapitalCostDeterminedByUse` | boolean \| null \| string |  | Whether part or all of this Class 44 patent's capital cost is determined by reference to use, as true, false or null. Asked on every Class 44 property; null holds the class. True replaces the 25% declining-balance allowance with Reg 1100(9.1), which needs class44UseDeterminedCapitalCostInYear and class44CumulativeUseDeterminedCapitalCost. |
| `assetData[].class44CumulativeUseDeterminedCapitalCost` | null \| number \| string |  | Total use-determined Class 44 capital cost for this year and all preceding years, as an amount no less than class44UseDeterminedCapitalCostInYear (a lower total is refused). Required for the Reg 1100(9.1) allowance; null holds the class. The 25% rate applies to the class's rate base (UCC after the half-year and incentive adjustments) less this total, the current-year use-determined amount is added, and the sum is capped at year-end UCC. |
| `assetData[].class44UseDeterminedCapitalCostInYear` | null \| number \| string |  | The part of the Class 44 capital cost determined by use for this year, as a non-negative amount (0 when nil). Required when class44CapitalCostDeterminedByUse is true; null holds the class rather than falling back to the 25% rate. Reg 1100(9.1) allows it plus 25% of the remaining base, capped at year-end UCC. |
| `assetData[].class6ParagraphKClass1OpeningUcc` | null \| number \| string |  | Opening UCC of the Class 1 pool that receives the part of a Class 6 building addition above both the Class 6(k) and Class 3(k) ceilings (Schedule II Cl. 6(k), 3(k)), as a non-negative amount; enter 0 when nil. Without it, or without class6ParagraphKClass1PriorCcaHistoryConfirmed true, that split is refused. It must equal the Class 1 opening UCC pool supplied without a propertyId, if there is one (refused otherwise); Class 1 pools with a propertyId are not compared. With no such pool, a positive value becomes Class 1's opening UCC. |
| `assetData[].class6ParagraphKClass1PriorCcaHistoryConfirmed` | boolean \| null \| string |  | Whether the receiving Class 1 pool's prior-CCA history is complete, for a Class 6 building addition that overflows through Class 3(k) into Class 1 (Schedule II Cl. 6(k), 3(k)), as true, false or null. True, with class6ParagraphKClass1OpeningUcc, is required before any current-year addition goes to Class 1, or the split is refused. On a row with no additions, true carries an earlier Class 1 split forward when the Class 3 split also carries and a Class 1 opening pool exists. |
| `assetData[].class6Post1978BuildingEligibilityMet` | boolean \| null \| string |  | For a building added to Class 6 that was acquired after 1978: whether a continuing Class 6(a) limb or a stated transitional condition still puts it in Class 6 (Schedule II Cl. 6(a)), as true, false or null, read only when isBuilding is true. Anything but true holds the class and points the building to Class 1(q). |
| `assetData[].closingCost` | null \| number \| string |  | Book cost of the row's property at year end, as a non-negative amount, not a tax figure. Without an assetCount on the row, a positive value counts one property remaining (no ITA 20(16) terminal loss) and an explicit 0 states none remains unless the row's additions are not covered by its disposition figures. A positive value with assetCount 0 is refused. With a nil tax reduction, a nonzero bookCostRemovalSigned and openingCost stated, a tied openingCost + additions - book removal = closingCost supplies disposedPropertyOriginalCost. If that continuity does not tie and proceedsOfDisposition is positive, the request is refused. |
| `assetData[].costIncurredTaxationYearEndDate` | array \| boolean \| null \| number \| object \| string |  | Last day of the taxation year in which a continuing Class 13 item's cost was incurred, as YYYY-MM-DD (Schedule III s.2(b)). Needed with costIncurredTaxationYearStartDate on a propertyCapitalCost row unless the preceding year-ends already reach that year; it must precede this year and agree with that chain, or the request is refused. Missing, the opening pool takes no continuing allowance and filing readiness is held unless a reviewed Class 13 ccaOverrides amount is supplied. |
| `assetData[].costIncurredTaxationYearStartDate` | array \| boolean \| null \| number \| object \| string |  | First day of the taxation year in which a continuing Class 13 item's cost was incurred, YYYY-MM-DD. Schedule III s.2(b) counts the amortization periods from this day, and the engine never substitutes an anniversary of this year's start. Needed with costIncurredTaxationYearEndDate unless the preceding year-ends reach that year; it must agree with that chain. |
| `assetData[].costIncurredTermEndDate` | array \| boolean \| null \| number \| object \| string |  | End date of the lease term that includes the end of the year a Class 13 cost was incurred, YYYY-MM-DD, entered when the cost fell after the original term (Schedule III s.3(b)). With hasRenewalTermAfterCostIncurredTerm it fixes the deemed lease-termination day; it cannot precede leaseEndDate and is required before nextSucceedingTermEndDate. |
| `assetData[].deemedAcquiredUnder16_1_1_bInPrecedingYear` | boolean \| null \| string |  | Whether the addition is property deemed acquired in a preceding year under ITA 16.1(1)(b) (Reg 1100(2) element F(b)(iv)), as true, false or null. True takes it out of the half-year reduction and the 50% Class 13 first-year amount. Null is read as not excluded, so the ordinary half-year reduction stays and a disclosed note asks for review. A Class 7 Canadian vessel under Reg 1100(1)(v) that became available for use this year and is not AIIP or RIIP is different. There a null on any of its additions holds the class with no allowance, and true selects the one-third rate instead of one-sixth. |
| `assetData[].description` | array \| boolean \| null \| number \| object \| string |  | Free-text description of the property on this row, as text. With the asset class, account names and GIFI description it forms the row's words, which decide whether the Reg 1102(1) inventory, listed-art, yacht/camp/lodge/golf and research questions and the Class 10 passenger-vehicle question must be answered or can default. The ITA 13(7)(e) deemed-cost notes name the row by it first. With one addition cohort the cohort's unit keeps it beside the cohort's own description. With several, it is not passed to the cohorts, whose words come from assetClass and each cohort's own description, assetDescription, account and GIFI fields. |
| `assetData[].disposedPropertyAcquiredBefore2017` | boolean \| null \| string |  | For a Class 14.1 disposition not covered by an ITA 13(39) listed rollover: whether the disposed property was acquired before 2017, as true, false or null. With disposedPropertyIsGoodwill it picks the paragraph limb of the ITA 13(39) deemed acquisition; null on non-goodwill property leaves that acquisition at nil and holds filing readiness. |
| `assetData[].disposedPropertyDeemed13_40Amount` | null \| number \| string |  | For a post-2016, non-goodwill Class 14.1 disposition whose disposedPropertyPost2016DeemedCostParagraph is 13(39)(b): the amount ITA 13(40) deems allowed under paragraph 20(1)(a), as a non-negative amount (0 when nil); a negative amount is refused. It is the third limb of the ITA 13(39) least-of deemed acquisition. Blank there leaves the deemed acquisition at nil and holds filing readiness. It is not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].disposedPropertyIsGoodwill` | boolean \| null \| string |  | For a Class 14.1 disposition not covered by an ITA 13(39) listed rollover: whether the disposed property is goodwill, as true, false or null. It picks the paragraph limb of the least-of deemed acquisition (1/4 of proceeds, 1/4 of capital cost, the paragraph amount); null leaves that acquisition at nil and holds filing readiness. |
| `assetData[].disposedPropertyOriginalCost` | null \| number \| string |  | Capital cost of the property this row disposed of, as a non-negative amount. Except for timber resource property, it is required when taxUccReductionOnDisposition is positive and caps it under ITA 13(21) element F, or the request is refused; it also feeds the ITA 13(39), 13(21.1), 13(21.2) and 13(7)(i) rules. When the tax reduction is nil, a tied openingCost + additions - book removal = closingCost supplies it, and a stated value that conflicts is refused. |
| `assetData[].disposedPropertyPost2016DeemedCostParagraph` | array \| boolean \| null \| number \| object \| string |  | For a post-2016, non-goodwill Class 14.1 disposition: the ITA 13(39) paragraph that gives the third least-of limb, as the text 13(39)(b), 13(39)(c) or Neither. (b) then needs disposedPropertyDeemed13_40Amount and (c) disposedPropertyRolloverTransferorDeemedCost; any other value leaves the deemed acquisition at nil and holds filing readiness. |
| `assetData[].disposedPropertyRolloverTransferorDeemedCost` | null \| number \| string |  | For a post-2016, non-goodwill Class 14.1 disposition whose disposedPropertyPost2016DeemedCostParagraph is 13(39)(c): the capital cost the transferor in a rollover acquisition would have been deemed to acquire the property at, as a non-negative amount (0 when nil); a negative amount is refused. It is the third limb of the ITA 13(39) least-of deemed acquisition. Blank there leaves the deemed acquisition at nil and holds filing readiness. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].dispositionAcquirerReg1100_2_2_hApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the acquirer of the disposed property qualifies for Reg 1100(2.2)(h), as true, false or null. True excludes this row's UCC reduction from element G under Reg 1100(2.3), while the reduction still lowers the pool. Null on a disposing row holds filing readiness when the class has element F or incentive additions. |
| `assetData[].dispositionDate` | array \| boolean \| null \| number \| object \| string |  | Date the row's property was disposed of, as YYYY-MM-DD text. Only the ITA 247(2.1) capital-cost adjustment reads it: when a transfer-pricing basis adjustment to this property says it was disposed of in the year, the request is refused unless this date equals the adjustment's through date. It does not otherwise change the computation. |
| `assetData[].dispositionIsArmsLength` | boolean \| null \| string |  | Whether a vehicle's disposition was at arm's length, as true, false or null (ITA 13(7)(i)(ii)). Read for a Class 54 zero-emission passenger vehicle, or a Class 10.1 vehicle with isDIEP or wasDIEP true, whose cost exceeds the prescribed amount, once its disposition figures and limit fields are stated. It sets the cap on taxUccReductionOnDisposition: true scales proceeds by deemed over actual cost, false leaves them unscaled; a reduction above the cap is refused, and null holds the class. |
| `assetData[].dispositionIsGiftToQualifiedDonee` | boolean \| null \| string |  | Whether the row's disposition was a gift of the property to a qualified donee, as true, false or null. True adds the class's ITA 13(1) recapture to the ITA 110.1(1)(a) recapture-on-gifts amount Schedule 8 publishes. On a row or addition cohort reporting a disposition, null leaves that amount unproven (published as null), and Schedule 2 then raises an error when its line 230 carries recapture. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].dispositionOutlaysAndExpenses` | null \| number \| string |  | Outlays and expenses made or incurred to make the disposition, as a non-negative amount. Where proceedsOfDisposition is stated and this is positive, a taxUccReductionOnDisposition above proceeds net of it is refused (ITA 13(21) element F). On timber resource property a disposition without it is refused, and taxUccReductionOnDisposition must equal net proceeds (element G). On a stop-loss row with affiliatedStopLossDeemedProceeds, blank holds the class; once stated, the class is reduced by the deemed proceeds less this amount. Where ITA 13(21.1) deems the building proceeds, the class is reduced by those deemed proceeds less this amount, capped at capital cost. It also enters the ITA 13(7)(i) element F cap for a Class 54 or capped Class 10.1 vehicle. Like other disposition amounts, a nonzero value on a row with several additionCohorts is refused. |
| `assetData[].dispositionReconciliationId` | array \| boolean \| null \| number \| object \| string |  | The W08 Row ID of this disposal, as text, repeated on each Schedule 6 row for the same sale. Blank falls back to the row's own key, and an ID that differs from that key breaks the link. Where the row's proceeds exceed its taxUccReductionOnDisposition, or are blank on a row that reports a disposition, at least one linked Schedule 6 row must exist, each must state proceeds, cost base and outlays, and their proceeds must sum exactly to this row's gross proceeds; otherwise filing readiness is held. Timber resource property, including Class 33, needs no Schedule 6 link (ITA 39(1)(a)(iv)). On a saved W08 row, Schedule 31's SR&ED recapture also reads it as the disposition's identifier, and as the property identifier when propertyId is blank. |
| `assetData[].eligibleCapitalPropertyBefore2017` | boolean \| null \| string |  | Whether a Class 14.1 row includes property that was eligible capital property before 2017 (ITA 13(38)), as true, false or null. True for a taxation year ending before 2027 engages the Reg 1100(1)(c.1) transitional review, so the engine refuses the transitional amounts until that history is supplied; false and null leave the row as entered. |
| `assetData[].eligibleGenerationEnergyTransmittedPct` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsEligibleTransmissionEquipment is true: the share of the electrical energy generated by the eligible generation equipment that this equipment transmits on an annual basis, as a percentage. The test needs more than 75; 75 or less, a value outside 0 to 100, a value that is not a number, or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].eligibleGreenhouseElectionMade` | boolean \| null \| string |  | Whether the Reg 1101(5w) election was made, as true, false or null. Yes puts the greenhouse in its own class and is refused without propertyId or outside Class 6 or 8. On an addition, Yes is refused beside isGreenhouse and isAdditionOrAlterationToGreenhouse both No; for greenhouse property acquired after November 3, 2025 blank holds the class; Yes holds it unless that date and the Reg 1104(2) facts are proven, then the Reg 1100(1)(ze) allowance replaces the ordinary rate. |
| `assetData[].eligibleGreenhouseLocatedInCanada` | boolean \| null \| string |  | Reg 1104(2)(a) eligible-greenhouse fact: whether the greenhouse is located in Canada, as true, false or null. It is read only for eligibleGreenhouseElectionMade Yes on a Class 6 or 8 addition acquired after November 3, 2025, and for the Reg 1102(28) rule once eligibleGreenhouseUnderConstructionOnNovember4_2025 is Yes. There, blank holds the class, and No makes the greenhouse ineligible, which also holds the class. |
| `assetData[].eligibleGreenhouseNoPriorCcaOrTerminalLossDeduction` | boolean \| null \| string |  | Reg 1104(2)(d)(i) eligible-greenhouse fact: whether no CCA or terminal loss was previously deducted for the property, as true, false or null. Yes satisfies paragraph (d) on its own, even where the Reg 1102(20.1) purpose fact is Yes; otherwise the three (d)(ii) facts must all hold. It is read only where the Reg 1101(5w) election or the Reg 1102(28) rule is tested, and there blank or No holds the class unless all three (d)(ii) facts hold. |
| `assetData[].eligibleGreenhouseNoPriorDeemedCcaOrUccReduction` | boolean \| null \| string |  | Reg 1104(2)(d)(ii)(A) eligible-greenhouse fact: whether no prior deemed CCA or UCC reduction applies to the property, as true, false or null. Where (d)(i) is not Yes, paragraph (d) needs this Yes, the (d)(ii)(B) ownership fact Yes and the Reg 1102(20.1) purpose fact No. It is read only where the Reg 1101(5w) election or the Reg 1102(28) rule is tested, and there blank or No holds the class unless (d)(i) is Yes. |
| `assetData[].eligibleGreenhouseNoPriorOwnershipByTaxpayerOrNonArmsLengthPerson` | boolean \| null \| string |  | Reg 1104(2)(d)(ii)(B) eligible-greenhouse fact: whether neither the taxpayer nor a non-arm's-length person previously owned the property, as true, false or null. Where (d)(i) is not Yes, paragraph (d) needs this Yes, the (d)(ii)(A) fact Yes and the Reg 1102(20.1) purpose fact No. It is read only where the Reg 1101(5w) election or the Reg 1102(28) rule is tested, and there blank or No holds the class unless (d)(i) is Yes. |
| `assetData[].eligibleGreenhousePreNovember4_2025UndeductedCapitalCost` | null \| number \| string |  | Capital cost incurred before November 4, 2025 on a greenhouse under construction that day and not deducted under ITA 20(1)(a), as a non-negative amount (0 when nil), kept out of additions. Unless elected out, Reg 1102(28) adds it as cost incurred November 4, 2025 in the available-for-use year. Once construction is Yes and eligibility is proven, blank holds the class. On a Class 6 or 8 isGreenhouse Yes row available for use in the year, or later if acquired in the year, a positive amount beside construction No is refused. On such a row with no availableForUseDate, any stated amount, even 0, holds the class. On such a row available for use before the year, or after it but acquired before it, the amount is not read. A positive amount holds the class on a row outside Class 6 or 8 or without isGreenhouse Yes. |
| `assetData[].eligibleGreenhouseQualificationAvoidancePurpose` | boolean \| null \| string |  | Reg 1102(20.1) purpose fact for an eligible greenhouse. true/false/null. Yes defeats the Reg 1104(2)(d)(ii) route but not a proven (d)(i); the (d)(ii) route needs No. Blank holds the class only while paragraph (d) is open and the Reg 1101(5w) election or the Reg 1102(28) rule is in play. |
| `assetData[].eligibleGreenhouseReg1102_28ElectionOut` | boolean \| null \| string |  | Whether the acquisition-year return elected out of Reg 1102(28), as true, false or null. Yes keeps eligibleGreenhousePreNovember4_2025UndeductedCapitalCost out of the greenhouse's cost. Blank holds the class once a positive pre-cutoff cost is in issue on an eligible greenhouse under construction on November 4, 2025. On a Class 6 or 8 isGreenhouse Yes row available for use in the year, or later if acquired in the year, Yes beside eligibleGreenhouseUnderConstructionOnNovember4_2025 No is refused. On such a row with no availableForUseDate, or available for use before the year, or after it but acquired before it, Yes is not read. On a row outside Class 6 or 8, or without isGreenhouse Yes, Yes holds the class. |
| `assetData[].eligibleGreenhouseScheduleIIClassConditionMet` | boolean \| null \| string |  | Reg 1104(2)(c) eligible-greenhouse fact: whether the property meets the Class 6(d) or Class 8(m) condition, as true, false or null. It is read only for eligibleGreenhouseElectionMade Yes on a Class 6 or 8 addition acquired after November 3, 2025, and for the Reg 1102(28) rule once eligibleGreenhouseUnderConstructionOnNovember4_2025 is Yes. There, blank holds the class, and No makes the greenhouse ineligible, which also holds the class. |
| `assetData[].eligibleGreenhouseUnderConstructionOnNovember4_2025` | boolean \| null \| string |  | Whether the greenhouse was under construction on November 4, 2025 (Reg 1102(28)), as true, false or null. It applies to a Class 6 or 8 isGreenhouse Yes row available for use in the year, or later if acquired in the year. There, blank holds the class, and No beside a positive pre-cutoff cost or an election-out is refused. Yes needs the eligibility facts, then adds the pre-cutoff cost unless elected out. Yes holds the class on a row outside Class 6 or 8, on a row without isGreenhouse Yes, or on a Class 6 or 8 isGreenhouse Yes row with no availableForUseDate. On a Class 6 or 8 isGreenhouse Yes row available for use before the year, or after it but acquired before it, the field is not read. |
| `assetData[].eligibleLiquefactionActivitiesIncomeBeforeCca` | null \| number \| string |  | The eligible LNG facility's Reg 1104(18) income before current-year CCA, as a non-negative amount (0 when nil), on a pool with liquefactionReg1101SeparateClass selected. It is one amount for the facility: a value stated on any row or cohort of the facility applies to both its Class 1 and Class 47 pools, and different values are refused, naming each input. It caps the Reg 1100(1)(a.3)/(yb) additional allowances at this income less the facility's basic and immediate-expensing CCA. Blank on every row and cohort of the facility keeps the basic Class 1 or 47 allowance, computes no additional allowance and holds filing readiness. |
| `assetData[].evChargingStationContinuousPowerKw` | null \| number \| string |  | The charging station's continuous power in kilowatts, as a non-negative number, read on a Class 43.1 or 43.2 row answered isElectricVehicleChargingStation Yes and isAncillaryToElectricVehicleChargingStations not Yes. Class 43.2 needs at least 90 kW and Class 43.1 more than 10 kW (Schedule II Cl. 43.1(d)(xvii), 43.2). A blank, a rating of 10 kW or less on Class 43.1, or a rating under 90 kW on Class 43.2 holds the class with no allowance. |
| `assetData[].firstRenewalEndDate` | array \| boolean \| null \| number \| object \| string |  | End date of the Class 13 lease's first renewal term, as YYYY-MM-DD (Schedule III s.3(b)). A date before leaseEndDate is refused. With no costIncurredTermEndDate and an original term that includes the end of the year the cost was incurred, it is the deemed termination day, and hasLeaseRenewalOption No beside it is refused. Where costIncurredTermEndDate equals leaseEndDate, or falls before this date, hasRenewalTermAfterCostIncurredTerm No is refused, and a stated nextSucceedingTermEndDate must equal this date or the input is refused. |
| `assetData[].firstRenewalYears` | null \| number \| string |  | Years in the Class 13 lease's first renewal term, as a non-negative number. Display only: with leaseTermYears it sets the pooled Class 13 rate shown on the schedule for a row whose lease dates give no Schedule III termination day. It never reaches the claim, which runs on the lease dates. Refused on an addition cohort. On a saved W08 row it is also refused when hasLeaseRenewalOption is No and it is above 0, or when hasLeaseRenewalOption is Yes and it is 0. |
| `assetData[].gifiDescription` | array \| boolean \| null \| number \| object \| string |  | The GIFI description of the account the row was booked to, as text. It is read only as part of the row's words, with assetClass, description, assetDescription and the account fields, which decide whether a blank isInventory, section37DeductionAllowedForAcquisitionExpenditure, reg1102_1_eListedArtOrAntiqueExclusionApplies or isYachtCampLodgeGolfCourseOrFacility defaults to No or holds the class, and whether a blank isPassengerVehicle on a Class 10 addition reads as No. |
| `assetData[].hasLeaseRenewalOption` | boolean \| null \| string |  | Whether the tenant holds a right to renew the Class 13 lease (Schedule III s.3(b)), as true, false or null. With no costIncurredTermEndDate and an original term that includes the end of the year the cost was incurred, No makes leaseEndDate the termination day and a renewal right makes firstRenewalEndDate it; No beside firstRenewalEndDate is refused. Where costIncurredTermEndDate equals leaseEndDate, Yes makes a hasRenewalTermAfterCostIncurredTerm of No refused. Blank without firstRenewalEndDate gives that item no claim and, without ccaOverrides, holds filing readiness. On a saved W08 row, No beside a firstRenewalYears above 0, or Yes beside a firstRenewalYears of 0, is refused. |
| `assetData[].hasRenewalTermAfterCostIncurredTerm` | boolean \| null \| string |  | For a Class 13 cost incurred in the lease term ending costIncurredTermEndDate: whether a renewal term follows it (Schedule III s.3(b)), as true, false or null. No makes costIncurredTermEndDate the termination day; Yes uses nextSucceedingTermEndDate. No is refused where firstRenewalEndDate, or hasLeaseRenewalOption Yes on the original term, shows a later term. Blank, or Yes without nextSucceedingTermEndDate, gives the item no claim and, without ccaOverrides, holds filing readiness. |
| `assetData[].importedCcaPoolId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the Schedule 8 pool an imported asset page came from, set when a filed return or a vendor file seeds the fixed-assets register: the vendor's suffixed class token for a sub-pool (for example 10-a), or the pool's own identifier. It must start with the row's ccaClass and a hyphen and equal the row's propertyId, and no separate-class or Reg 1102(14) fact may give the row a different pool, or the request is refused. Pages sharing it are one pool, which the engine does not require to hold a single property, and the year's closing balances keep that pool under the same identifier for the next year. |
| `assetData[].incorporationCostExcessAddition` | null \| number \| string |  | The part of this row's Class 14.1 additions that is incorporation cost above the ITA 20(1)(b) deduction (ITA 13(35)), as a non-negative amount; a negative value is always refused. Its other checks run only when the incorporation-costs workpaper states its required Class 14.1 addition: then a value above the row's additions or a positive value outside Class 14.1 is refused, and the total across rows must equal the required addition or filing readiness is held. It does not change the class's additions. |
| `assetData[].isAIIP` | boolean \| null \| string |  | Whether the property is accelerated investment incentive property (Reg 1104(4): acquired after November 20, 2018 and before 2025, available for use before 2028) or, for property acquired after 2024, reaccelerated investment incentive property (Reg 1104(4.01): available for use before 2034), and meets condition (b)(i) or (b)(ii) of that definition. The acquisition date selects the definition, so answer Yes for a post-2024 acquisition that is RIIP; the key keeps its original name. Classes 54 to 56 are outside both definitions. Required inside either window; Yes outside both is refused. |
| `assetData[].isAdditionOrAlterationToGreenhouse` | boolean \| null \| string |  | Whether the property is an addition or alteration to a greenhouse that Reg 1102(27) treats as a separate greenhouse, as true, false or null. Yes, like isGreenhouse Yes, makes it greenhouse property for the Reg 1101(5w) election, but not for the Reg 1102(28) rule, which reads isGreenhouse alone. On a Class 6 or 8 addition acquired after November 3, 2025, an open status (neither answer Yes, not both No) holds the class unless eligibleGreenhouseElectionMade is No. |
| `assetData[].isAiipSolelyBecauseOfReg1104_4_b_i` | boolean \| null \| string |  | For accelerated investment incentive property acquired before 2025: whether it is AIIP only because it meets Reg 1104(4)(b)(i) (no amount was deducted on it under ITA 20(1)(a) or 20(16) by any person or partnership for a taxation year ending before the acquisition) and not also because of (b)(ii), for example property acquired from a non-arm's-length person who never claimed CCA on it. |
| `assetData[].isAncillaryToElectricVehicleChargingStations` | boolean \| null \| string |  | On a Class 43.1 or 43.2 row whose isElectricVehicleChargingStation is No: whether it is equipment used primarily with EV charging stations (Schedule II Cl. 43.1(d)(xvii)(C)(II)), as true, false or null. Blank holds the class. Yes needs minimumContinuousPowerKwOfServedEvChargingStations above 10 kW and, on Class 43.2, anyServedEvChargingStationAtLeast90Kw Yes, or the class is held. Yes beside a station Yes also holds the class. |
| `assetData[].isBuilding` | boolean \| null \| string |  | Whether the property is a building, as true, false or null. On a Class 1, 3 or 6 addition, blank holds the class, and Yes applies the Schedule II building paragraph's acquisition-date boundary, which can hold the class. On a purpose-built rental pool (isNewPurposeBuiltResidentialRental Yes) anything but Yes holds the class. On Class 43.1 or 43.2 any stated value makes claimsEligibleTransmissionEquipment required, and with that claim Yes anything but No holds the class. On a saved W08 row, Yes on Class 1, 3, 6, 20, 24 or 27 also makes the property Reg 4600 prescribed property for the Schedule 31 investment tax credit, and the Reg 4600(1) categories need Yes. |
| `assetData[].isDIEP` | boolean \| null \| string |  | Whether the addition is designated immediate expensing property (Reg 1104(3.1)(c)), as true, false or null. On an addition meeting the CCPC, class, acquired after April 18, 2021 and available for use before 2024 gates, blank is refused; Yes outside them is refused. Yes sends the addition to the Reg 1100(0.1) immediate expensing claim and its disposals to the DIEP proceeds column, and holds filing readiness until the DIEP coverage confirmation and an immediateExpensingAgreement exist. |
| `assetData[].isDiepSolelyBecauseOfReg1104_3_1_c_i` | boolean \| null \| string |  | For designated immediate expensing property: whether it is DIEP only because of Reg 1104(3.1)(c)(i). true/false/null. Yes requires preApril19_2021ExpenditureAmount, which Reg 1100(0.3) excludes from DIEP UCC unless the inventory-transfer exception applies. Blank cannot mean No and holds the class with no allowance. |
| `assetData[].isElectricVehicleChargingStation` | boolean \| null \| string |  | On a Class 43.1 or 43.2 row: whether the property is an electric vehicle charging station, as true, false or null. Yes requires evChargingStationContinuousPowerKw, above 10 kW for Class 43.1 and at least 90 kW for Class 43.2. Yes beside isAncillaryToElectricVehicleChargingStations Yes holds the class. No moves to the ancillary-equipment question. Blank holds the class with no allowance. |
| `assetData[].isFormerPropertyDeemedOwnedUnder13_4_3` | boolean \| null \| string |  | Whether the row is a former property elected under ITA 13(4.2) that ITA 13(4.3) deems still owned, as true, false or null. Yes puts it in its own Reg 1101(1ag) class and is refused without propertyId. Where the class would otherwise empty with UCC left, a blank, or Yes with similarPropertyAcquiredWithin24MonthsAndStillOwned blank, holds the class; Yes with that answer Yes keeps the pool, denies the terminal loss under ITA 20(16.1)(b) and holds filing readiness. Yes together with a railwayReg1101SeparateClass selection on the same row holds the class with no allowance. |
| `assetData[].isGreenhouse` | boolean \| null \| string |  | Whether the property is the corporation's actual greenhouse (Reg 1104(2)), as true, false or null. Yes, like isAdditionOrAlterationToGreenhouse Yes, makes it greenhouse property for the Reg 1101(5w) election; only isGreenhouse Yes opens the Reg 1102(28) rule, and construction facts on a row without it hold the class. On a Class 6 or 8 addition acquired after November 3, 2025, an open status (neither answer Yes, not both No) holds the class unless the election is No. |
| `assetData[].isIndustrialMineralMineOrRight` | boolean \| null \| string |  | On a Schedule V resource pool: whether the property is an industrial mineral mine or a right to remove industrial minerals (Reg 1100(1)(g)). true/false/null, one consistent value across the pool's rows. Anything but Yes holds the pool's resource allowance. |
| `assetData[].isInventory` | boolean \| null \| string |  | Whether the property is inventory, which Reg 1102(1)(b) excludes from every CCA class, as true, false or null. Yes holds the class. Blank is treated as No with a disclosed note unless the row's words name inventory or stock-in-trade, in which case it holds the class. On a Schedules IV-VI resource pool only an explicit No avoids a hold. |
| `assetData[].isLand` | boolean \| null \| string |  | Whether the property is land (Reg 1102(2)), as true, false or null. Yes, or an Asset Class that reads land, holds the class until the land is removed. No beside a land Asset Class is a contradiction that holds the class. Blank with no Asset Class holds the class with no allowance. On a saved W08 row linked to a Schedule 31 investment, No is also part of the evidence that the property is depreciable property. |
| `assetData[].isLeasingProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the row is leasing property, as true or false (Yes/No text is also read); any other value is ignored. True counts as leasing property on the schedule: unless the Reg 1100(15) leasing income ceiling is supplied with no Reg 1101(5c) separate class, the coverage review's leasing-property rules question must be answered No, or filing readiness is held. It is not otherwise read. |
| `assetData[].isNewPurposeBuiltResidentialRental` | boolean \| null \| string |  | Whether the building is a new purpose-built residential rental (Reg 1104(2)), as true, false or null. Yes puts it in its own Reg 1101(1ac.1) class and is refused without propertyId. The class is held unless purposeBuiltResidentialRentalThroughoutYear is answered, isBuilding is Yes, the class is a building class (not 1-NRB, 1-MP or 1-LNG), the year ends after April 15, 2024 and no row is available for use after 2035; throughout-year Yes then adds the Reg 1100(1)(a.4) allowance. A row with assetCount above 1 holds the class. Where the same class number also carries an opening UCC with no propertyId and the rental's own class has none, that pooled opening must answer containsPurposeBuiltResidentialRentalUcc No, or every pool of that class number is held. If the pooled opening holds the rental's prior-year UCC, that balance belongs in the rental's own class. Yes together with a railwayReg1101SeparateClass selection on the same row holds the class with no allowance. |
| `assetData[].isPassengerVehicle` | boolean \| null \| string |  | Whether a Class 10 or 10.1 addition is an ITA 248(1) passenger vehicle, as true, false or null. On Class 10.1 blank reads as Yes and No holds filing readiness. On Class 10, blank reads as No at or below the Reg 7307(1) base or when the row's words name no passenger vehicle; above the base it holds the class when they name one or the row has no words. On Class 10, Yes needs passengerVehicleCostToTaxpayer and holds the class when that cost is above the prescribed amount. On Class 10.1, Yes caps the vehicle's cost at the prescribed amount instead. On either class, Yes takes a non-arm's-length acquisition to ITA 13(7)(h), not 13(7)(e). |
| `assetData[].isPassengerVehicleAcquiredNonArmsLength` | boolean \| null \| string |  | For a passenger vehicle addition: whether it was acquired non-arm's-length, as true, false or null. Yes applies ITA 13(7)(h): the vehicle's cost becomes the least of its fair market value, the transferor's cost amount and the Reg 7307(1) prescribed amount. propertyId, passengerVehicleCostToTaxpayer, nonArmsLengthVehicleFairMarketValue and nonArmsLengthTransferorCostAmount are then required, or the class is held. Blank follows acquiredFromNonArmsLengthPerson, which defaults to No when jacket boxes 162 and 171 are both No; both blank, or a disagreement, holds the class. |
| `assetData[].isPatentOrRightToUsePatentedInformation` | boolean \| null \| string |  | For a Class 44 property: whether it is a patent or a right to use patented information, as true, false or null; another value is refused. Anything but true on a property in the class holds Class 44 with no allowance (a franchise, concession or other limited-period licence is Class 14). Not read in another class. |
| `assetData[].isReg1101_5k_1CanadianFilmProduction` | boolean \| null \| string |  | Class 10 only: whether this is Class 10(x) Canadian film or video production property, which Reg 1101(5k.1) puts in one separate class, as true, false or null; Yes on another class is refused. Yes moves it to that class and requires canadianFilmProductionIncomeBeforeCca, which caps the Reg 1100(1)(m) additional allowance; a blank income then holds the class, and an income stated beside No is refused. Blank on a Class 10 property row holds the class. |
| `assetData[].isRiipSolelyBecauseOfReg1104_4_01_b_i` | boolean \| null \| string |  | For reaccelerated investment incentive property acquired after 2024: whether it is RIIP only because it meets Reg 1104(4.01)(b)(i) (no amount was deducted on it under ITA 20(1)(a) or 20(16) by any person or partnership for a taxation year ending before the acquisition) and not also because of (b)(ii), for example property acquired from a non-arm's-length person who never claimed CCA on it. |
| `assetData[].isSeparateClassRentalPropertyReg1101_1ac` | boolean \| null \| string |  | Whether the property is a rental property costing $50,000 or more that Reg 1101(1ac) puts in its own separate class, as true, false or null. Yes gives the row its own pool keyed by propertyId unless a per-property or other prescribed separate class already applies; Yes is refused without propertyId or beside separateClassBusinessId. A Yes also needs the coverage review's rentalPropertySeparateClassApplicable answer to be Yes, or filing readiness is held. On a row with reg1101IncomeSourceType Property, blank leaves the Reg 1101 pool identity incomplete and holds the class. |
| `assetData[].isSeparateClassUnderITA37_6` | boolean \| null \| string |  | Whether ITA 37(6) puts the property in a separate prescribed class because an ITA 37(1) amount was claimed for it, as true, false or null; another value is refused. True puts the property in its own Schedule 8 pool keyed by ccaClass and propertyId, before the Reg 1101 separate-class rules are applied, and is refused without propertyId; false or null leaves the pool to the other rules. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].isSystemsSoftware` | boolean \| null \| string |  | Class 12 only: whether the property is systems software (true, false or null). Class 12(o) excludes systems software, which belongs in Class 50, so Yes holds the Class 12 claim, and so does a blank answer on a Class 12 property row. Tools, cutlery, moulds, dies and uniforms answer No. |
| `assetData[].isTimberLimitOrCuttingRight` | boolean \| null \| string |  | For a Schedule VI resource pool: whether the property is a timber limit or a right to cut timber (true, false or null). Reg 1100(1)(e) and Schedule VI need Yes here and No to isTimberResourceProperty; any other combination holds the pool. |
| `assetData[].isTimberResourceProperty` | boolean \| null \| string |  | Whether the property is timber resource property, as true, false or null. Yes makes a disposition reduce UCC by full net proceeds with no capital-cost cap (ITA 13(21) element G): proceedsOfDisposition and dispositionOutlaysAndExpenses are required and taxUccReductionOnDisposition must equal proceeds less outlays, or the input is refused; it also skips capital-gain routing (ITA 39(1)(a)(iv)). Class 33 implies Yes and refuses No; on a Schedule IV or VI pool anything but No holds the pool. |
| `assetData[].isVessel` | array \| boolean \| null \| number \| object \| string |  | Class 7 only: whether the property is a vessel, as true, false or null. Blank on a Class 7 property row holds the class. Yes with every Reg 1101(2a) condition met and no Reg 1101(2c) structured financing puts the vessel in its own class keyed by propertyId (refused without it), with the Reg 1100(1)(v) allowance on canadianVesselCapitalCost. Yes with a Reg 1101(2a) condition answered No, or with structured financing Yes, leaves the vessel in the ordinary Class 7 pool and asks nothing more. Otherwise, Yes with a condition unanswered holds the class. A qualifying vessel also needs canadianVesselCapitalCost and availableForUseDate, or the class is held. |
| `assetData[].isYachtCampLodgeGolfCourseOrFacility` | boolean \| null \| string |  | Whether the property is a yacht, camp, lodge, golf course or golf facility described in ITA 18(1)(l) (true, false or null). Reg 1102(1)(f) excludes it from every class, so Yes holds the class unless businessProvidesPropertyForHireOrReward is Yes. Blank counts as No with a disclosed note, but holds the class where the row's words name such property. |
| `assetData[].isZeroEmissionPassengerVehicle` | array \| boolean \| null \| number \| object \| string |  | Class 54 only: whether the zero-emission vehicle is a passenger vehicle, as true, false or null. Yes caps each vehicle's capital cost at the Reg 7307(1.1) prescribed amount and, on a disposal, applies the ITA 13(7)(i) proceeds rule, which needs both prescribed-limit amounts; No leaves it uncapped. On an addition, blank reads as Yes only where both prescribed-limit amounts are stated and otherwise holds the class; on a disposal with proceeds, blank holds the class. |
| `assetData[].isZeroEmissionVehiclePerITA248` | boolean \| null \| string |  | For a Class 54 or 55 property: whether it is a zero-emission vehicle as ITA 248(1) defines it, as true, false or null; another value is refused. Anything but true on a property in the class holds the class with no allowance. Not read in another class. |
| `assetData[].leaseEndDate` | array \| boolean \| null \| number \| object \| string |  | Class 13 leasehold: the date the lease's original term ends, as YYYY-MM-DD. With no costIncurredTermEndDate, where that term runs to or past the end of the year the cost was incurred, it is the Schedule III s.3(b) termination day if hasLeaseRenewalOption is No; a renewal right moves that day to firstRenewalEndDate, which cannot precede it. A costIncurredTermEndDate before this date is refused. Without a termination day the item claims nothing and, without ccaOverrides, filing readiness is held. |
| `assetData[].leaseTermYears` | null \| number \| string |  | Class 13 lease term in years, as a non-negative number. Display only: with firstRenewalYears it sets the pooled Class 13 rate shown on the schedule for a row whose lease dates give no Schedule III termination day. It never reaches the claim, which runs on the lease dates. Refused on an addition cohort. |
| `assetData[].lifeExpiryDate` | array \| boolean \| null \| number \| object \| string |  | Class 14 only: the date the property's limited legal life ends, as YYYY-MM-DD, which must fall after acquisitionDate. Reg 1100(1)(c) apportions the cost by day over the life from acquisition to this date. An addition or continuing item without it claims nothing and, unless ccaOverrides supplies a reviewed Class 14 amount, holds filing readiness; no life is estimated. When the taxation period's dates are stated, a date on or before the year end counts the property of a row with assetCount as gone. |
| `assetData[].liquefactionFacilityId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the eligible LNG facility, as text. With liquefactionReg1101SeparateClass selected it keys the separate Class 1 building or Class 47 equipment pool and is required, or the input is refused. The pool holds every row and cohort of that facility and class; two of them with the same propertyId are refused. The shared Reg 1100(1)(a.3)/(yb) facility-income ceiling applies per facility across its Class 1 and Class 47 pools. |
| `assetData[].liquefactionReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The LNG prescribed separate class: Not applicable, 1101(5b.2) (Class 1 eligible liquefaction building) or 1101(4i) (Class 47 eligible liquefaction equipment). Another value, a class mismatch, a blank liquefactionFacilityId, or an addition acquired outside February 20, 2015 to 2024 is refused. A selected class takes one W08 row per facility pool, and a second row or cohort in that pool is refused. With eligibleLiquefactionActivitiesIncomeBeforeCca stated it adds the Reg 1100(1)(a.3) 6% or (yb) 22% allowance. The coverage review's other-separate-class answer must be Yes, or filing readiness is held. |
| `assetData[].meetsClass56UsedPropertyCondition` | boolean \| null \| string |  | For a Class 56 property: whether it meets Schedule II Class 56 paragraph (b), which reads Reg 1104(4.01)(b): no person deducted CCA or a terminal loss on it for a year ending before the corporation acquired it, or it came neither on a rollover nor from a non-arm's-length owner. As true, false or null; another value is refused. Anything but true on a property in the class holds Class 56 with no allowance. Not read in another class. |
| `assetData[].mineCcaSources` | array \| boolean \| null \| number \| object \| string |  | For a pool whose CCA is shared by several mines: the member mines, each an object with mineId, incomeBeforeCca, ordinaryCca and additionalCca, repeated identically on every row of the pool (differing lists are refused). Read only when a Reg 1101(4a) to (4h) class with an available additional allowance is on the return. It is required on a multiple-mine group pool (Reg 1101(4b) or (4d)), which needs at least two mines listed, and on any pool whose rows state it or whose mineId names such a group. ordinaryCca must total the pool's ordinary claim. Where a pool with more than one member mine claims an additional allowance, every member needs additionalCca and they must total that claim; otherwise additionalCca may be blank. An incomplete or unbalanced list allows no Reg 1100(1)(w) to (ya) additional allowance and holds filing readiness. A negative CCA amount, a single-mine pool that names any mine but its own mineId, and member incomes whose total differs from mineIncomeBeforeCca are refused. |
| `assetData[].mineId` | array \| boolean \| null \| number \| object \| string |  | Stable identifier of a mine or mine group, as text. With mineReg1101SeparateClass selected it keys that Reg 1101(4a) to (4h) class and is required, one consistent ID per pool, or the input is refused. Where a mining class with an available additional allowance is on the return, it attributes an ordinary pool's CCA to its mine. One mine ID across the pool takes the whole claim. Mixed IDs, a blank marking the non-mine share, need mineOrdinaryCcaAllocation on every row. An ID that names a multiple-mine group pool (Reg 1101(4b) or (4d)) instead needs mineCcaSources on every row of the pool, or filing readiness is held and no Reg 1100(1)(w) to (ya) additional allowance is allowed. |
| `assetData[].mineIncomeBeforeCca` | array \| boolean \| null \| number \| object \| string |  | Income of the mine or mine group after non-CCA expenses and before this year's CCA, as an amount (0 when nil). One pool-level figure that caps the Reg 1100(1)(w) to (ya) additional allowance; while that allowance is available for the selected class, blank holds the class. Refused when mineReg1101SeparateClass is Not applicable, when the pool's rows state different values, when one mine carries different values in two pools, or when it differs from the total incomeBeforeCca of the pool's mineCcaSources. |
| `assetData[].mineOrdinaryCcaAllocation` | null \| number \| string |  | For an ordinary CCA pool used at more than one mine, or at a mine and elsewhere: this row's share of the pool's claimed CCA, as a non-negative amount. It is read only where a mining class with an available additional allowance is on the return and the pool claims CCA. It is required where the pool's rows carry different mineId values, or a blank beside a mineId, and also where no row carries a mineId but a row's separateClassBusinessId matches a mining pool's. Every row then needs one and they must total the pool's claim, a blank mineId marking the non-mine share; otherwise no Reg 1100(1)(w) to (ya) additional allowance is allowed and filing readiness is held. Not needed where every row carries the same single-mine mineId. |
| `assetData[].mineReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The Reg 1101 mining separate class: Not applicable or 1101(4a) to (4h) (4a/4b Class 28, 4c/4d Class 41, 4e/4f Class 41.1, 4g/4h Class 41.2; first of each pair one mine, second multiple mines); other values, a class mismatch or a blank mineId are refused. On a Class 28, 41, 41.1 or 41.2 pool with opening UCC or additions, blank holds the class. A selection keys the pool by mineId and needs the coverage review's other-separate-class answer Yes, or filing readiness is held. |
| `assetData[].minimumContinuousPowerKwOfServedEvChargingStations` | null \| number \| string |  | For Class 43.1 or 43.2 equipment used primarily with EV charging stations (isAncillaryToElectricVehicleChargingStations Yes): the lowest continuous power, in kW, among every station it serves, as a number. Class 43.1(d)(xvii)(C)(II) needs each served station above 10 kW, so blank or 10 kW or less holds the class. |
| `assetData[].nextSucceedingTermEndDate` | array \| boolean \| null \| number \| object \| string |  | Class 13 leasehold: the end date of the lease term that follows the term including the end of the year the cost was incurred (YYYY-MM-DD). With hasRenewalTermAfterCostIncurredTerm Yes it is the Schedule III s.3(b) termination day. It requires costIncurredTermEndDate and must fall after it, or the input is refused. Where firstRenewalEndDate is stated and costIncurredTermEndDate equals leaseEndDate or falls before firstRenewalEndDate, it must equal firstRenewalEndDate, or the input is refused. |
| `assetData[].nonArmsLengthTransferorCostAmount` | null \| number \| string |  | The transferor's cost amount of a non-arm's-length passenger vehicle immediately before the corporation acquired it, as a non-negative amount. It is the ITA 13(7)(h)(ii) operand of the least-of deemed capital cost, beside fair market value and the Reg 7307(1) prescribed amount. On a Class 10 or 10.1 passenger vehicle addition whose non-arm's-length answer is Yes (isPassengerVehicleAcquiredNonArmsLength, or acquiredFromNonArmsLengthPerson when that is blank), blank holds the class. |
| `assetData[].nonArmsLengthVehicleFairMarketValue` | null \| number \| string |  | Fair market value of a non-arm's-length passenger vehicle when acquired, as a non-negative amount. It is the ITA 13(7)(h)(i) operand of the least-of deemed capital cost, beside the transferor's cost amount and the Reg 7307(1) prescribed amount. On a Class 10 or 10.1 passenger vehicle addition whose non-arm's-length answer is Yes (isPassengerVehicleAcquiredNonArmsLength, or acquiredFromNonArmsLengthPerson when that is blank), blank holds the class. |
| `assetData[].nonRecoverableSalesTaxOnPrescribedLimit` | null \| number \| string |  | Element B of the Reg 7307 prescribed amount: non-recoverable sales tax on an acquisition at cost A, as a non-negative amount (0 if none). It raises the Class 10.1 or 54 cost ceiling and is applied as nil with a disclosed note when blank. Blank holds the class where a Class 10 passenger vehicle costs more than A, where ITA 13(7)(h) limb (iii) binds on a Class 10 vehicle, on a Class 54 addition whose isZeroEmissionPassengerVehicle is blank, or on a disposal with proceeds of a Class 54 zero-emission passenger vehicle or a Class 10.1 vehicle that was DIEP. On Class 10.1, limb (iii) uses the ceiling with B as nil and does not hold. |
| `assetData[].openingCost` | null \| number \| string |  | Book cost of the row's property at the start of the year, as a non-negative amount. On a row that states closingCost, a bookCostRemovalSigned and a zero taxUccReductionOnDisposition, the book continuity (openingCost plus additions less cost removed equals closingCost) can prove the disposed property's original cost; if it does not tie on a row with proceeds, the input is refused. A positive amount also marks the row as property of its class. |
| `assetData[].openingUCC` | null \| number \| string |  | Undepreciated capital cost carried into the year for the row's pool, as a non-negative amount. On a request, the opening balance itself comes from pyUCCPools; a positive amount here marks the row as property of its class. When the rows come from the engagement's saved W08 workpaper, they are summed by pool identity into the opening balance and must equal the prior-year rows' closing UCC for that pool, or the input is refused. On a Class 13 pool whose claim comes from ccaOverrides because its continuing items are incomplete, each row's openingUCC is read as that cost item's share of the opening pool, and shares the pool cannot hold are refused. |
| `assetData[].passengerVehicleCostToTaxpayer` | null \| number \| string |  | The passenger vehicle's cost to the corporation, as a non-negative amount. On a Class 10 passenger vehicle addition it is required and tested against the acquisition-year Reg 7307(1) prescribed amount; a cost above it holds the class for a move to Class 10.1. On a Class 10.1 addition a blank falls back to the single addition, and a cost at or below the prescribed amount holds filing readiness for a move to Class 10. A non-arm's-length passenger vehicle also requires it under ITA 13(7)(h). |
| `assetData[].postNovember20_2018DeemedDeductionAmount` | null \| number \| string |  | For AIIP only because of Reg 1104(4)(b)(i): the cost incurred after November 20, 2018 in respect of which a deduction is deemed made, as an amount (0 when none), not the deduction itself. Reg 1100(2.02)(a)(ii) excludes it from the accelerated element D. Required in that case, else the class is held; with the pre-threshold amount it cannot exceed additions. |
| `assetData[].postTwentyTwentyFourDeemedDeductionAmount` | null \| number \| string |  | For RIIP only because of Reg 1104(4.01)(b)(i): the cost incurred after 2024 in respect of which a deduction is deemed made, as an amount (0 when none), not the deduction itself. Reg 1100(2.021)(a)(ii) excludes it from the accelerated element D.1. Required in that case, else the class is held; with the pre-2025 amount it cannot exceed additions. |
| `assetData[].preApril19_2021ExpenditureAmount` | null \| number \| string |  | For DIEP only because of Reg 1104(3.1)(c)(i): the part of the cost incurred before April 19, 2021, as an amount (0 when none). Unless the inventory-transfer exception applies, Reg 1100(0.3) excludes it from the immediate-expensing pool. Required in that case, else the class is held; cannot exceed additions. |
| `assetData[].preNovember21_2018ExpenditureAmount` | null \| number \| string |  | For AIIP only because of Reg 1104(4)(b)(i): the part of the cost incurred before November 21, 2018, as an amount (0 when none). Unless the inventory-transfer exception applies, Reg 1100(2.02)(a)(i) moves it from the accelerated element D to element F. Required in that case, else the class is held. With postNovember20_2018DeemedDeductionAmount it cannot exceed additions, nor can it exceed a preApril19_2021ExpenditureAmount that Reg 1100(0.3) excludes. |
| `assetData[].preTwentyTwentyFiveExpenditureAmount` | null \| number \| string |  | For RIIP only because of Reg 1104(4.01)(b)(i): the part of the cost incurred before 2025, as an amount (0 when none). Unless the inventory-transfer exception applies, Reg 1100(2.021)(a)(i) moves it from the accelerated element D.1 to element F. Required in that case, else the class is held; with the post-2024 amount it cannot exceed additions. |
| `assetData[].prescribedVehicleCapitalCostLimit` | null \| number \| string |  | The Reg 7307 prescribed amount for the vehicle's acquisition date (element A plus sales tax B), as an amount. The engine computes A itself and caps a Class 10.1 vehicle or Class 54 zero-emission passenger vehicle at A plus nonRecoverableSalesTaxOnPrescribedLimit; a different figure here holds filing readiness (refused on a Class 10 passenger vehicle whose cost and B are stated). Blank holds the class on a disposal with proceeds of such a Class 54 vehicle or a DIEP Class 10.1 vehicle, and on a Class 54 addition whose isZeroEmissionPassengerVehicle is blank. On such an addition, stating it with nonRecoverableSalesTaxOnPrescribedLimit is read as Yes and the cap applies. |
| `assetData[].priorCcaClaimed` | array \| boolean \| null \| number \| object \| string |  | Classes 13 and 14: CCA already claimed on the continuing item named by propertyCapitalCost, as a non-negative amount; above that cost it is refused unless an ITA 247(2.1) adjustment set the cost. The remainder caps the item's yearly claim. The opening pool's allowance is computed only when the items' remainders total the opening UCC exactly with no dispositions; otherwise, as when this is blank, it is $0 and filing readiness is held unless ccaClaimedOverride gives the claim. |
| `assetData[].proceedsOfDisposition` | null \| number \| string |  | Gross proceeds of disposition of the row's property, as a non-negative amount; timber resource property needs it. taxUccReductionOnDisposition is refused above it or above it net of dispositionOutlaysAndExpenses (ITA 13(21) element F). It is also the actual building proceeds for ITA 13(21.1) and the proceeds ITA 13(7)(i) scales on a capped vehicle. Outside timber, proceeds above that reduction, or blank proceeds beside other disposal evidence, hold filing readiness until three things are true: each Schedule 6 row with this row's dispositionReconciliationId states proceeds, ACB and outlays and none is marked for review; their proceeds total exactly this amount when it is positive; and the Schedule 8 coverage answer capitalGainRoutingComplete is Yes. |
| `assetData[].propertyCapitalCost` | array \| boolean \| null \| number \| object \| string |  | Classes 13 and 14 only: the capital cost of one property carried from an earlier year, as a positive amount. It names a continuing item for the per-item Schedule III or Reg 1100(1)(c) allowance and needs priorCcaClaimed plus the item's dates; it is refused on other classes and on a row with current-year additions. |
| `assetData[].propertyGroupId` | array \| boolean \| null \| number \| object \| string |  | Identifier linking a building row to its land for ITA 13(21.1), as text. On a building-class disposition with section13_21_1LandRelationshipExists true, Schedule 8 takes the Schedule 6 land row carrying the same ID, computes the deemed building proceeds and uses them for the building's UCC reduction. Schedule 6 reads this row's building facts through the same ID unless the linkage answer is false, and under paragraph 13(21.1)(a) it replaces the land row's proceeds with the deemed land proceeds. Land or building facts either schedule cannot complete hold filing readiness, and so does a Schedule 6 land row whose ID matches no row here. Two Schedule 6 land rows with the same ID are refused, and so are two of these rows or addition cohorts with the same ID once any Schedule 6 land row carries a propertyGroupId. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].propertyId` | array \| boolean \| null \| number \| object \| string |  | Durable identity of the row's property, as text. It keys the pool of per-property classes (each Class 10.1 vehicle, Class 1-NRB and 1-MP buildings) and of property-level separate classes such as Reg 1101(1ac) rentals, Canadian vessels and Schedules IV to VI resource properties, where a blank is refused, and carries the pool forward. Two rows in a pool keyed to one property are refused, except in a Schedules IV to VI resource pool, which takes one row per part. In a Reg 1101(4a)-(4h) mine pool or a Reg 1101(5b.2)/(4i) LNG facility pool, which holds several properties, two rows or cohorts with the same propertyId are refused. A repeated ID among the property rows of any other pool holds the class. A blank holds the class on an ITA 13(7)(e) non-arm's-length acquisition that is not a passenger vehicle and on an ITA 13(7)(h) vehicle. |
| `assetData[].propertyIdentityConfirmed` | array \| boolean \| null \| number \| object \| string |  | Confirmation that a provisional Property Identity has been replaced with a durable source or preparer-assigned ID (true, false or null). Read only when propertyIdentityIsProvisional is Yes: No or blank, or an ID still starting with provisional:, holds the class with no allowance, and other text is refused. It is read the same way on a Schedules IV to VI resource row. |
| `assetData[].propertyIdentityIsProvisional` | array \| boolean \| null \| number \| object \| string |  | Whether the row's Property Identity is provisional, as set when an imported register row has no unique source asset ID (true, false or null). Yes holds the class with no allowance until propertyIdentityConfirmed is Yes and the ID no longer starts with provisional:, because a description does not prove continuity of a statutory property. It is checked the same way on a Schedules IV to VI resource row. |
| `assetData[].purposeBuiltResidentialRentalThroughoutYear` | boolean \| null \| string |  | For a new purpose-built residential rental in its own Reg 1101(1ac.1) class: whether it qualified throughout this taxation year (true, false or null). Yes allows the Reg 1100(1)(a.4) additional allowance; No leaves only the basic rate; blank holds the class. Answer it each year. |
| `assetData[].railwayCommonCarrierOwnedAndOperatedThroughoutYear` | boolean \| null \| string |  | For a railway class under Reg 1101(5d.1), (5d.2), (5e.1) or (5e.2): whether the corporation was, throughout the year, a common carrier that owned and operated a railway (true, false or null). Yes allows that class's Reg 1100(1)(z.1b), (z.1c), (za.1) or (za.2) additional allowance; No denies only that allowance; blank holds the class with no allowance; other text is refused. The Reg 1101(5e) class's paragraph (za) allowance does not depend on this answer. |
| `assetData[].railwayReg1101SeparateClass` | array \| boolean \| null \| number \| object \| string |  | The Reg 1101 railway separate class: 1101(5d)(c) to (f), (5d.1) or (5d.2) for Class 35 cars, (5e) or (5e.1) for Class 1 track, (5e.2) or (5f) for Class 3 trestles; blank when none. A selection must match the CCA class or it is refused. It puts the property in that railway pool and adds the Reg 1100(1)(z) to (zb) additional allowance when its conditions are met. Where another answer on the row puts the property in a different separate class first (isSeparateClassUnderITA37_6, isFormerPropertyDeemedOwnedUnder13_4_3 or isNewPurposeBuiltResidentialRental Yes), the property stays in that class, gets no railway allowance, and the class is held with no allowance until one answer is cleared. A selection also needs the Schedule 8 coverage answer otherPrescribedSeparateClassRuleApplies to be Yes; No holds filing readiness and keeps the claim. A Class 3 trestle row is not asked the Class 3 paragraph (k) addition-and-alteration question. |
| `assetData[].railwayReg1101_5dAnnualClassConditionsMet` | boolean \| null \| string |  | For Class 35 railway cars in a Reg 1101(5d)(c) to (f) separate class: whether this year's Reg 1101(5d) conditions are met, including more than one qualifying car rented, leased or used in Canada (true, false or null). No or blank holds the class with no allowance, including the Reg 1100(1)(z) or (z.1a) additional allowance; other text is refused. |
| `assetData[].reg1100_0_3And2_02ExcludedExpenditureOverlapAmount` | null \| number \| string |  | For property that is both DIEP and AIIP with costs excluded under Reg 1100(0.3) and Reg 1100(2.02): the part excluded under both, as an amount. The engine bounds it from the excluded amounts, the row's additions and the incurrence dates. Where the bounds meet, it derives the amount and refuses any other stated value; on an addition without both exclusions only 0 is accepted. Otherwise it needs this amount: a blank holds the class, and an amount outside the bounds is refused. A negative amount is refused. |
| `assetData[].reg1100_0_3InventoryTransferExceptionApplies` | boolean \| null \| string |  | Asked on a DIEP addition when isDiepSolelyBecauseOfReg1104_3_1_c_i is Yes and preApril19_2021ExpenditureAmount is positive: whether the Reg 1100(0.3) inventory-transfer exception applies (true, false or null). Yes keeps that pre-April 19, 2021 cost eligible for immediate expensing; No excludes it from the immediate-expensing pool; blank holds the class. |
| `assetData[].reg1100_16SpecifiedLeasingPropertyThroughoutYear` | boolean \| null \| string |  | Whether the addition is specified leasing property throughout the year (Reg 1100(2) element F(b)(iii)), as true, false or null. Yes takes it out of the half-year reduction and the 50% Class 13 first-year amount. On a Canadian vessel that is neither AIIP nor RIIP and first available for use this year, Yes gives the one-third Reg 1100(1)(v) rate instead of one-sixth, and a blank holds the class. Yes also makes the Schedule 8 leasing-property coverage reviews required, so blank coverage answers then hold filing readiness. Elsewhere a blank counts as not excluded, so the half-year reduction, or the 50% Class 13 first-year amount, stays. On an addition with no AIIP or RIIP enhancement this comes with a disclosed note; on an accelerated addition it applies without a note to the part Reg 1100(2.02) or (2.021) moves to element F. |
| `assetData[].reg1100_2_021InventoryTransferExceptionApplies` | boolean \| null \| string |  | Asked when isRiipSolelyBecauseOfReg1104_4_01_b_i is Yes, postTwentyTwentyFourDeemedDeductionAmount is entered and preTwentyTwentyFiveExpenditureAmount is positive: whether the Reg 1100(2.021)(a)(i) inventory-transfer exception applies (true, false or null). Yes keeps that pre-2025 cost in the accelerated element D.1; No moves it to element F; blank holds the class. |
| `assetData[].reg1100_2_02InventoryTransferExceptionApplies` | boolean \| null \| string |  | Asked on an addition acquired before 2025 outside Classes 54 to 56 when isAiipSolelyBecauseOfReg1104_4_b_i is Yes, postNovember20_2018DeemedDeductionAmount is entered and preNovember21_2018ExpenditureAmount is positive: whether the Reg 1100(2.02)(a)(i) inventory-transfer exception applies (true, false or null). Yes keeps that pre-November 21, 2018 cost in the accelerated element D; No moves it to element F; blank holds the class. |
| `assetData[].reg1100_2_2NonArmsLengthContinuityApplies` | boolean \| null \| string |  | Whether Reg 1100(2.2) applies to a non-arm's-length or paragraph 55(3)(b) acquisition of property the transferor held continuously for at least 364 days (true, false or null). Yes keeps the addition out of the half-year element F and gives Class 13 the full Schedule III amount in the first year. The engine does not check a Yes against the acquisition-route answers. On a row with current-year additions, other than a Schedules IV to VI resource row, a blank is refused when acquiredFromNonArmsLengthPerson or acquiredInParagraph55_3_bReorganization is Yes. |
| `assetData[].reg1101IncomeSourceType` | array \| boolean \| null \| number \| object \| string |  | Income source the property serves, for the Reg 1101(1) and (1ac) separate-class rules: Business, Property, Not applicable or blank, in any letter case; other text is refused. It is checked only on rows whose pool no other prescribed or per-property class keys. Property with a separateClassBusinessId, or with no isSeparateClassRentalPropertyReg1101_1ac answer, holds the class, and so do two different stated sources in one pool. Once any row of the class number keys a Reg 1101(1) business pool or a Reg 1101(1ac) rental pool, or a prior-year pool of either kind carries UCC, a blank, or Business without separateClassBusinessId, also holds the class. Not applicable holds the class unless acquiredForIncomePurpose is Yes and another prescribed class keys the pool. Property also brings in the Schedule 8 rental coverage reviews, whose blank answers hold filing readiness and keep the claim. |
| `assetData[].reg1102_14Class41SpecialRulesApply` | boolean \| null \| string |  | For a Reg 1102(14) acquisition of transferor Class 41 property: whether Reg 1102(14.11) or (14.12) applies, true/false/null. True splits a positive current-year acquisition: Class 41 takes the lesser of the transferor's Class 41 UCC before the disposition and the reduction in it, and the rest goes to Class 41.1 or 41.2. A row that also reports a disposition is refused. With no current-year addition, the row carries whichever prior-filed Class 41 and 41.1 or 41.2 split pools exist, and is refused when neither exists. False keeps it all in Class 41; null holds the class. |
| `assetData[].reg1102_14Class41SplitRole` | array \| boolean \| null \| number \| object \| string |  | Marks a row already carried as one portion of a Reg 1102(14.11)/(14.12) Class 41 split: class41 for the lesser-of portion, remainder for the Class 41.1 or 41.2 portion; any other text is refused. It counts only where reg1102_14ClassContinuityApplies is true, reg1102_14TransferorCcaClass is 41 and reg1102_14Class41SpecialRulesApply is true: there the engine keeps the row in its own ccaClass instead of splitting it again, and a class that does not fit the role and subsection (41 for class41; 41.1 under 1102(14.11) or 41.2 under 1102(14.12) for remainder) holds the class. Anywhere else the role does not change the pool, which Reg 1102(14) sets as if the role were blank, and on a property row where continuity is false, the transferor class is not 41 or the special rules are false it holds the class with no allowance. |
| `assetData[].reg1102_14Class41SplitSubsection` | array \| boolean \| null \| number \| object \| string |  | Which Class 41 split rule applies when reg1102_14Class41SpecialRulesApply is true: 1102(14.11), the oil-sands rule with the remainder in Class 41.1, or 1102(14.12), the other-property rule with the remainder in Class 41.2. Any other value is refused when the engine runs the split. On a row already carried with reg1102_14Class41SplitRole, a blank or other value holds the class instead of being refused, and so does a class that does not fit the role and subsection. |
| `assetData[].reg1102_14ClassContinuityApplies` | boolean \| null \| string |  | Whether Reg 1102(14) keeps the property in the transferor's prescribed class or separate class, as on a related-party or qualifying reorganization acquisition; true/false/null. It is asked on every Schedule II row that holds property (positive additions, opening UCC, opening or closing cost, or a non-zero assetCount), and null there holds the class with no allowance. It is not asked on a Schedules IV to VI resource row. With true, the engine pools the property in reg1102_14TransferorCcaClass, subject to that field's Class 41 and Classes 54 to 56 rules, and a row carrying reg1102_14Class41SplitRole pools in its own ccaClass. A blank reg1102_14TransferorCcaClass or reg1102_14TransferorPropertyWasSeparateClass then holds the class. |
| `assetData[].reg1102_14TransferorCcaClass` | array \| boolean \| null \| number \| object \| string |  | The transferor's CCA class number as text, read when reg1102_14ClassContinuityApplies is true; Reg 1102(14) pools the property in that class. Blank holds the class. A class different from ccaClass is computed in the transferor's class but holds filing readiness, except on a completed Class 41 split; the hold names the class the engine computed in. A reg1102_14Class41SplitRole on a row whose transferor class is not 41 does not change the pool and holds the class with no allowance. Classes 54 to 56 hold the class (Reg 1102(14.13)), and Class 41 also needs reg1102_14Class41SpecialRulesApply. |
| `assetData[].reg1102_14TransferorClass41UccImmediatelyBeforeDisposition` | null \| number \| string |  | Amount: the transferor's Class 41 UCC immediately before it disposed of the property, for the Reg 1102(14.11)/(14.12) split. The Class 41 portion is the lesser of this and reg1102_14TransferorClass41UccReductionOnDisposition, and the rest goes to Class 41.1 or 41.2; both amounts are required when the split applies, or the input is refused. |
| `assetData[].reg1102_14TransferorClass41UccReductionOnDisposition` | null \| number \| string |  | Amount: the reduction in the transferor's Class 41 UCC caused by its disposition of the property, for the Reg 1102(14.11)/(14.12) split. The Class 41 portion is the lesser of this and the transferor's UCC immediately before the disposition; both amounts are required when the split applies, and a blank, or a Class 41 portion above the acquisition cost, is refused. |
| `assetData[].reg1102_14TransferorPropertyWasSeparateClass` | boolean \| null \| string |  | Whether the transferor held the property in a separate prescribed class, true/false/null, asked when reg1102_14ClassContinuityApplies is true. True keeps that separate class under Reg 1102(14), keyed by reg1102_14TransferorSeparateClassId; null holds the class, and false for a per-property class is held as a contradiction. |
| `assetData[].reg1102_14TransferorSeparateClassId` | array \| boolean \| null \| number \| object \| string |  | Identity of the transferor's separate prescribed class, as text, used as the pool key when reg1102_14TransferorPropertyWasSeparateClass is true (Reg 1102(14)). Blank holds the class. When the engine runs the Class 41 split, a blank is refused. On a row already carried with reg1102_14Class41SplitRole, a blank holds the class unless propertyId is also blank, which is refused. A different propertyId is replaced by this identity and holds filing readiness. |
| `assetData[].reg1102_1_eListedArtOrAntiqueExclusionApplies` | boolean \| null \| string |  | Whether the Reg 1102(1)(e) exclusion for listed art and antiques applies to the property, true/false/null. True holds the class, since the property is then in no CCA class. Null is read as false with a disclosed note, unless the row's class label, descriptions, account fields or GIFI description mention art, artwork, a painting, sculpture, antique, tapestry, engraving, lithograph, etching or drawing; then null holds the class. This applies to a Schedules IV to VI resource row too. |
| `assetData[].reg1102_5Or5_1BuildingLeaseholdApplies` | boolean \| null \| string |  | For a Class 13 leasehold addition: whether Reg 1102(5) or (5.1) treats the leasehold interest as a building or other structure in another class, true/false/null. True or null holds Class 13 with no allowance, because Schedule II Class 13(b) excludes that cost; answer false for an ordinary leasehold improvement. |
| `assetData[].replacementPropertyElection` | array \| boolean \| null \| number \| object \| string |  | Whether a replacement-property election applies to this row's disposition. True, or the text yes, true or y in any case, reads as Yes; any other value reads as No. A Yes on any row or cohort makes the Schedule 8 coverage review ask whether a replacement-property or other special disposition rule applies: blank there, or Yes, holds filing readiness, because Schedule 8 does not compute the deferral. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].resourceAllowancePreviouslyGranted` | boolean \| null \| string |  | Schedules V and VI: whether an allowance was granted on this resource property for a previous taxation year, true/false/null. False computes the section 2 first-allowance rate from resourceOriginalQuantity; true moves to the section 3 rate; null holds the class. It is not used once the section 4 election is made with its sale proceeds entered. With the election made but the sale proceeds blank, the class is held and this answer is still read. Text other than true, false or blank is refused on any row. |
| `assetData[].resourceAllowanceSchedule` | array \| boolean \| null \| number \| object \| string |  | Routes the row to the unit-of-production allowance under Reg 1100(1)(e), (f) and (g): IV (Class 15 timber property), V (industrial mineral mine or right) or VI (timber limit or cutting right). ccaClass must be 15, V or VI to match, propertyId is required because the engine keys each resource property its own pool (a separate class under Reg 1101(3) for each timber limit and cutting right, and under Reg 1101(4) for each industrial mineral mine and right where the taxpayer has more than one), and every row of the pool must carry the same schedule; any other value or a breach is refused. Each resource row is also checked for a provisional Property Identity, the Reg 1102(1)(b) to (e) exclusions and, on a current-year addition, ITA 13(7)(e); a failing check holds the pool with no allowance. |
| `assetData[].resourceCapitalCost` | null \| number \| string |  | Amount: the resource property's capital cost for the Schedules IV to VI allowance. It is the base of the Schedules V and VI section 2 rate and of the section 3(a)(i) recomputation of that rate, before residual value and survey costs come off. Schedule IV and the section 3(a)(ii) and 3(b) rates do not use it. A blank holds the class in every case (enter 0 only when the cost is nil). It must agree across the pool's rows, or the input is refused. It feeds the Schedule 27 Part 4 gross-cost check, where a mismatch holds filing readiness and keeps the claim. A negative amount is refused. On a Schedule V or VI pool taking the section 2 rate with no opening UCC and no disposition, where ITA 13(7)(e)(i) or (ii) changed an addition's cost, a value other than the pool's additions after that deeming holds the pool. |
| `assetData[].resourceEstimateOrCapitalCostChanged` | boolean \| null \| string |  | Schedules V and VI section 3: whether the remaining quantity or the capital cost differs from what the preceding rate used, true/false/null. True computes the section 3(b) revised rate from resourceHypotheticalOpeningUccWithoutEnhancement less residual value, over resourceQuantityAtStart; false applies section 3(a); null holds the class. |
| `assetData[].resourceHypotheticalOpeningUccWithoutEnhancement` | null \| number \| string |  | Amount: opening UCC recomputed with factor A set to 1 in every prior year. Schedule IV section 2 sets the per-unit rate on it whenever opening UCC is positive (enter the actual opening UCC if no enhanced allowance was ever claimed); a blank there holds the class and a value below the actual opening UCC is refused. Schedules V and VI use it for the section 3(b) revised rate, where a blank holds the class and a value below residual value is refused. |
| `assetData[].resourceMostRecentRatePerUnit` | null \| number \| string |  | Schedules V and VI section 3(a)(ii): the most recent per-unit rate used for this property, applied to resourceQuantityCutOrMined when an allowance was granted before, neither estimate nor cost changed, and the previous rate did not come from section 2. Blank in that case holds the class. |
| `assetData[].resourceOriginalQuantity` | null \| number \| string |  | The original estimated quantity of the property (cruise or mineable quantity), in resourceQuantityUnit, used as the Schedules V and VI section 2 rate denominator and to recompute a prior section 2 rate under section 3(a)(i). Where it is read, zero is refused and a blank holds the class. A negative amount is refused on any row; elsewhere zero is accepted and not used. |
| `assetData[].resourcePartHypotheticalUccBeforeAllowance` | array \| boolean \| null \| number \| object \| string |  | Schedule IV section 3, on a pool with more than one part: this part's share of the UCC before allowance, recomputed as though the subparagraph 1(a)(i) enhancement never applied. Needed only when that pre-enhancement UCC differs from the actual UCC, and then a blank holds the class; the parts must total the pool's pre-enhancement UCC or the input is refused. |
| `assetData[].resourcePartUccBeforeAllowance` | null \| number \| string |  | Schedule IV section 3, on a pool with more than one part (one row per limit or section): this part's UCC before the allowance. Its per-unit rate is computed on it as if it were the only Class 15 property, unless the pool's pre-enhancement UCC differs, when resourcePartHypotheticalUccBeforeAllowance is used instead. The parts must total the pool's UCC before CCA or the input is refused; a blank holds the class. |
| `assetData[].resourcePreviousRateUsedFirstClaimFormula` | boolean \| null \| string |  | Schedules V and VI section 3(a), where an allowance was granted before and neither estimate nor cost changed: whether section 2 set the previous year's rate, true/false/null. True recomputes that rate as capital cost less residual value (and, for Schedule VI, survey costs) over resourceOriginalQuantity, with factor A of 1; false uses resourceMostRecentRatePerUnit; null holds the class. |
| `assetData[].resourcePriorSurveyCruiseMapDeductions` | null \| number \| string |  | Schedule VI: survey, cruise, print, map and plan costs already deducted in prior years (enter 0 when none). The section 1(a)(ii) addition is the lesser of one tenth of the lifetime cost and the lifetime cost less this amount; more than resourceSurveyCruiseMapCosts is refused, and a blank holds the class. It is not used once the section 4 election is made with its sale proceeds entered. With the election made but the sale proceeds blank, it is still read and can be refused. A negative or non-numeric amount is refused on any row. |
| `assetData[].resourceQuantityAtStart` | null \| number \| string |  | Quantity on hand at the start of the year, in resourceQuantityUnit. Schedule IV divides each part's pre-enhancement UCC by it to get the per-unit rate. Once resourceQuantityCutOrMined is entered, zero, or less than the cut quantity, is refused there. Schedules V and VI section 3(b) use it as the quantity remaining for the revised rate. Once resourceHypotheticalOpeningUccWithoutEnhancement is entered, zero is refused there. A blank where it is needed, or a blank paired operand, holds the class. A negative amount is refused on any row. |
| `assetData[].resourceQuantityCutOrMined` | null \| number \| string |  | Quantity cut or mined in the year, in resourceQuantityUnit, multiplied by the per-unit rate to give the Schedules IV to VI allowance. Required, with 0 when nothing was cut or mined: a blank holds the class, except under a Schedule V or VI section 4 election, which does not use it. Under Schedule IV more than resourceQuantityAtStart is refused. |
| `assetData[].resourceQuantityUnit` | array \| boolean \| null \| number \| object \| string |  | Text naming the unit every resource quantity on the row uses, for example cords, board feet, cubic metres or the mineable unit of the estimate. Required for a Schedules IV to VI property unless the Schedule V/VI section 4 election is made; a blank holds the class. |
| `assetData[].resourceResidualValue` | null \| number \| string |  | Amount: the estimated residual value of a Schedule V or VI property (enter 0 when nil). It comes off capital cost in the section 2 rate and its section 3(a)(i) recomputation, and off resourceHypotheticalOpeningUccWithoutEnhancement in the section 3(b) revised rate. Section 2 refuses residual value plus survey costs above capital cost, and section 3(b) refuses a hypothetical opening UCC below it. A blank holds the class unless the section 4 election is made. Schedule IV does not use it and ignores a blank, but every row of a pool that states it must agree or the input is refused. A negative amount is refused. |
| `assetData[].resourceSaleProceedsForSection4Election` | null \| number \| string |  | For a Schedule V or VI resource pool whose resourceSection4AlternativeElection is true: the amount received in the year from the sale of mineral (Schedule V) or timber (Schedule VI), as a non-negative amount, 0 when none; a negative amount is refused. The elected deduction is the lesser of $100 and this amount. One amount for the pool: values on its rows and cohorts must agree, or the request is refused. Blank holds the pool. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].resourceSection4AlternativeElection` | boolean \| null \| string |  | For a Schedule V or VI resource pool: whether the corporation elects the section 4 deduction, the lesser of $100 and the year's sale receipts, in lieu of the sections 1 to 3 computation, as true, false or null; another value is refused. One answer for the pool: values on its rows and cohorts must agree, or the request is refused. Blank holds the pool. True takes that lesser amount, capped by the pool's UCC, and needs resourceSaleProceedsForSection4Election; false keeps sections 1 to 3. Not read for Schedule IV or another class. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].resourceSurveyCruiseMapCosts` | null \| number \| string |  | Schedule VI: lifetime survey, cruise, print, map and plan costs included in the property's cost (enter 0 when none). They come off capital cost in the section 2 rate and its section 3(a)(i) recomputation, and are allowed separately under section 1(a)(ii) at one tenth a year, capped at the cost not yet deducted. A blank is refused where the section 2 or section 3(a)(i) rate needs it and otherwise holds the class. Under a section 4 election with its sale proceeds entered it is not read, so a blank neither holds nor is refused. A negative amount is refused. |
| `assetData[].rolloverElectionApplies` | array \| boolean \| null \| number \| object \| string |  | Whether a rollover election applies to this row's disposition. True, or the text yes, true or y in any case, reads as Yes; any other value reads as No. A Yes on any row or cohort makes the Schedule 8 coverage review ask whether a replacement-property or other special disposition rule applies: blank there, or Yes, holds filing readiness, because Schedule 8 does not compute the rollover. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].s247CapitalCost` | null \| number \| string |  | Amount: the identified property's capital cost as stated on this row, checked against an ITA 247(2.1) transfer-pricing capital-cost adjustment. It must equal that adjustment's before or after basis, matching its stated input state, or the input is refused. On a fixed-assets workpaper row that states a nil openingUCC, it also keeps the property's pool on the schedule at that nil opening UCC. |
| `assetData[].section110_6_21CapitalCostReduction` | null \| number \| string |  | Amount: the ITA 110.6(21) capital-cost reduction, for a current-year ITA 13(7)(e)(i) non-arm's-length acquisition (not a passenger vehicle) from a Canadian-resident individual or qualifying partnership that cost more than the transferor's capital cost. It is subtracted from the transferor's gain before one half of that gain is added to the transferor's cost; enter 0 when nil, as a blank holds the class. A negative amount is refused. It is read the same way on a Schedules IV to VI resource row. |
| `assetData[].section13_21_1BuildingCostAmount` | null \| number \| string |  | The building's cost amount immediately before the disposition, as a non-negative amount, for ITA 13(21.1). Schedule 8 reads it on a building-class disposition whose section13_21_1LandRelationshipExists is true. The subsection applies only when proceedsOfDisposition is below the lesser of this amount and disposedPropertyOriginalCost. The deemed building proceeds then come from paragraph (a), using the Schedule 6 land row linked by propertyGroupId, or from paragraph (b), which adds one half of the excess of the greater of this amount and section13_21_1BuildingFairMarketValue over the proceeds. Without a linked land row, Schedule 8 reads section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson and section13_21_1HistoricalNecessaryLandOwnership from this row. The lesser of the deemed proceeds net of outlays and the capital cost replaces taxUccReductionOnDisposition. That usually raises the class's UCC reduction and cuts the terminal loss, and it can lower it. Deemed proceeds above the capital cost hold filing readiness until the excess gain is routed to Schedule 6. Under paragraph (a), Schedule 6 replaces the linked land row's proceeds with the deemed land proceeds. A blank here, or in proceedsOfDisposition, disposedPropertyOriginalCost or section13_21_1BuildingFairMarketValue, holds filing readiness and keeps the claim, except that a blank disposedPropertyOriginalCost beside a positive UCC reduction is refused. A negative amount is refused. Schedule 6 also reads it from any row or cohort whose propertyGroupId matches a Schedule 6 land row, unless section13_21_1LandRelationshipExists is false. There a blank holds Schedule 6 readiness, and so does a blank linkage answer when the proceeds are below the lesser of this amount and the capital cost. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].section13_21_1BuildingFairMarketValue` | null \| number \| string |  | The building's fair market value immediately before the disposition, as a non-negative amount, for ITA 13(21.1). Schedule 8 reads it on a building-class disposition whose section13_21_1LandRelationshipExists is true. It matters only when proceedsOfDisposition is below the lesser of section13_21_1BuildingCostAmount and disposedPropertyOriginalCost. It then sets the deemed building proceeds: under paragraph (a) it enters both limits of the lesser-of test with the figures of the Schedule 6 land row linked by propertyGroupId, and under paragraph (b) the proceeds rise by one half of the excess of the greater of this value and the cost amount over them. Without a linked land row, Schedule 8 reads section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson and section13_21_1HistoricalNecessaryLandOwnership from this row. The lesser of the deemed proceeds net of outlays and the capital cost replaces taxUccReductionOnDisposition. That usually raises the class's UCC reduction and cuts the terminal loss, and it can lower it. Deemed proceeds above the capital cost hold filing readiness until the excess gain is routed to Schedule 6. Under paragraph (a), Schedule 6 replaces the linked land row's proceeds with the deemed land proceeds. A blank here, or in proceedsOfDisposition, disposedPropertyOriginalCost or section13_21_1BuildingCostAmount, holds filing readiness and keeps the claim, except that a blank disposedPropertyOriginalCost beside a positive UCC reduction is refused. A negative amount is refused. Schedule 6 also reads it from any row or cohort whose propertyGroupId matches a Schedule 6 land row, unless section13_21_1LandRelationshipExists is false, and there a blank holds Schedule 6 readiness. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].section13_21_1HistoricalNecessaryLandOwnership` | boolean \| null \| string |  | Where ITA 13(21.1) reaches a building disposition (relationship true, proceeds below the lesser of cost amount and capital cost) and the same-year land answer is false: whether the corporation or a non-arm's-length person owned the subjacent or necessary contiguous land at any time before the disposition, as true, false or null; another value is refused. A linked Schedule 6 land row answers first; this row fills its blank. Blank holds filing readiness. True applies paragraph (b): proceeds rise by half the excess of the greater of cost amount and FMV over them. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson` | boolean \| null \| string |  | For a building disposition ITA 13(21.1) reaches (relationship true, proceeds below the lesser of cost amount and capital cost): whether the corporation or a non-arm's-length person disposed of the subjacent or necessary contiguous land in the year, as true, false or null; another value is refused. A Schedule 6 land row with the same propertyGroupId answers first; this row fills its blank. Blank holds filing readiness. True applies paragraph (a), which needs that land row's amounts; false applies paragraph (b) if section13_21_1HistoricalNecessaryLandOwnership is true. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].section13_21_1LandRelationshipExists` | array \| boolean \| null \| number \| object \| string |  | For a disposition from a building class (1, 1-NRB, 1-MP, 1-LNG, 3, 6, 31 or 32): whether related subjacent or contiguous land brings in ITA 13(21.1), true/false/null. True applies that subsection using this row's proceedsOfDisposition, disposedPropertyOriginalCost, section13_21_1BuildingCostAmount and section13_21_1BuildingFairMarketValue and the Schedule 6 land row linked by propertyGroupId. Without a linked land row, Schedule 8 reads section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson and section13_21_1HistoricalNecessaryLandOwnership from this row. False turns the reallocation off in both schedules. Null holds Schedule 8 filing readiness when the class shows a terminal loss. Where a Schedule 6 land row carries this row's propertyGroupId, a null also holds Schedule 6 readiness when the building facts are incomplete or the proceeds are below the lesser of the cost amount and the capital cost, terminal loss or not. On a row with several additionCohorts it is refused unless every cohort states the same value: state it on the cohort that disposes of the building. |
| `assetData[].section13_4Election` | array \| boolean \| null \| number \| object \| string |  | Whether the ITA 13(4) replacement-property election applies to this row's disposition. True, or the text yes, true or y in any case, reads as Yes; any other value reads as No. A Yes on any row or cohort makes the Schedule 8 coverage review ask whether a replacement-property or other special disposition rule applies: blank there, or Yes, holds filing readiness, because Schedule 8 does not compute the deferral. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].section13_4_1Election` | array \| boolean \| null \| number \| object \| string |  | Whether the ITA 13(4.1) election applies to this row's disposition. True, or the text yes, true or y in any case, reads as Yes; any other value reads as No. A Yes on any row or cohort makes the Schedule 8 coverage review ask whether a replacement-property or other special disposition rule applies: blank there, or Yes, holds filing readiness, because Schedule 8 does not compute the deferral. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].section149DispositionOfEveryPropertyInClass` | array \| boolean \| null \| number \| object \| string |  | True where ITA 149(10)(b) deems every property of the class disposed of on a change of tax-exempt status; the class is then treated as holding no property at year end, unless an ITA 13(21.2) stop-loss suspension is still outstanding. The engine sets it on the rows it builds from section 149 events; only a literal true has effect. |
| `assetData[].section37DeductionAllowedForAcquisitionExpenditure` | boolean \| null \| string |  | Whether an ITA section 37 deduction is allowed for the expenditure that acquired the property, true/false/null. True holds the class, since Reg 1102(1)(d) then puts the property in no CCA class. Null is read as false with a disclosed note, unless the row's class label, descriptions, account fields or GIFI description mention SR&ED, SRED, R&D, research, scientific or experimental development; then null holds the class. This applies to a Schedules IV to VI resource row too. |
| `assetData[].section44Election` | array \| boolean \| null \| number \| object \| string |  | Whether the ITA 44(1) replacement-property election applies to this row's disposition. True, or the text yes, true or y in any case, reads as Yes; any other value reads as No. A Yes on any row or cohort makes the Schedule 8 coverage review ask whether a replacement-property or other special disposition rule applies: blank there, or Yes, holds filing readiness, because Schedule 8 does not compute the deferral. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].separateClassBusinessId` | array \| boolean \| null \| number \| object \| string |  | Text identifying the business whose property this row is, for Reg 1101(1) (each business's property forms its own class). On a class number that no other prescribed or per-property class keys, rows with different values become separate pools; different values inside a pool that another rule keys hold the class. It assigns Class 14.1 history by business. Matching the business of a Reg 1101(4a) to (4d) mine pool that has an additional allowance this year puts this pool's ordinary CCA in the mine-income attribution. That needs mineOrdinaryCcaAllocation on every row unless every row names one mineId, and an allocation on a row with no mineId counts as the share outside the mines. Mine income comes from mineIncomeBeforeCca or mineCcaSources. On a pool no other separate class keys, a row may not also claim a Reg 1101(1ac) rental class; that is refused. |
| `assetData[].similarPropertyAcquiredWithin24MonthsAndStillOwned` | boolean \| null \| string |  | Asked when isFormerPropertyDeemedOwnedUnder13_4_3 is true and the class would otherwise take a terminal loss: whether a similar property at the same fixed place was acquired within 24 months and is still owned, true/false/null. True keeps the pool with no terminal loss under ITA 20(16.1)(b) and holds filing readiness for review of the carried-over Reg 1100(1)(c) life; null holds the class. |
| `assetData[].storageEnergyConditionMet` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsClass431ElectricalStorage is true: whether the energy source or efficiency condition of Class 43.1(d)(xviii) is met, as true, false, Yes or No. Only true or Yes passes the test; false, any other value or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].storageExcludedCategory` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property claiming claimsClass431ElectricalStorage: the storage exclusion that applies, as text: none, building, pumped_hydroelectric_storage, hydroelectric_dam_or_reservoir, backup_only, motor_vehicle_battery, steam_methane_fuel_cell, class_10_or_17, other_vehicle_battery, other_automotive_equipment_battery or vehicle_or_automotive_charging_property. The last three exclude only property acquired and available for use on or after November 17, 2025. An exclusion that applies, other text or blank holds the class. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].storageFixedLocation` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsClass431ElectricalStorage is true: whether it is fixed location energy storage property, as true, false, Yes or No. Only true or Yes passes the test; false, any other value or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].storagePrimaryPurposeConfirmed` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsClass431ElectricalStorage is true: whether the corporation or its lessee uses it primarily to store and discharge electrical energy, as true, false, Yes or No. Only true or Yes passes the test; false, any other value or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].subsection39ExcludedDispositionApplies` | array \| boolean \| null \| number \| object \| string |  | For a Class 14.1 disposition: whether one of ITA 24(2), 70(5.1), 73(3.1), 85(1), 88(1), 98(3), 98(5), 107(2) or 107.4(3) applies, true/false/null. True skips the ITA 13(39) deemed acquisition; false lets the engine compute it; null leaves the deemed acquisition at nil and holds filing readiness. |
| `assetData[].taxUccReductionOnDisposition` | null \| number \| string |  | Amount the row's dispositions take off the class's UCC under ITA 13(21): the sum, per property, of the lesser of net proceeds and capital cost (element F), or for timber resource property the full net proceeds (element G), which it must equal. A blank on a row with disposition evidence is refused (enter 0 for nil proceeds). It is also refused above gross or net proceeds and, outside timber, above disposedPropertyOriginalCost or when positive without it. On a Class 10.1 or Class 54 vehicle within ITA 13(7)(i), it is also refused above element F computed on the deemed capital cost and, on an arm's-length disposition, on proceeds scaled by the deemed capital cost over the actual cost. The engine replaces the stated amount with the ITA 13(21.1) deemed building amount where that subsection applies, and with the ITA 13(21.2) deemed proceeds net of outlays where the stop-loss applies. |
| `assetData[].transferorCapitalCostImmediatelyBefore` | null \| number \| string |  | Amount: the transferor's capital cost immediately before it disposed of the property, required on a current-year addition acquired non-arm's-length that is not a passenger vehicle (ITA 13(7)(e)). If the corporation's cost does not exceed it, the capital cost becomes this amount and the excess is deemed prior CCA; otherwise the gain rule applies. Blank holds the class, and a negative amount is refused. On a Schedules IV to VI resource row the deemed cost replaces the addition and the deemed prior allowance reduces the pool's UCC; on a Schedule V or VI pool that deemed allowance holds the pool until resourceAllowancePreviouslyGranted is Yes with the section 3 rate facts. |
| `assetData[].transferorProceedsOfDisposition` | null \| number \| string |  | Amount: the transferor's proceeds of disposition, for a current-year non-arm's-length acquisition (not a passenger vehicle) that cost the corporation more than the transferor's capital cost. ITA 13(7)(e)(i) or (ii) then sets the capital cost at the transferor's cost plus one half of the transferor's gain; a blank holds the class, and a negative amount is refused. It is read the same way on a Schedules IV to VI resource row. |
| `assetData[].transferorSection110_6Deductions` | null \| number \| string |  | Amount: the transferor's section 110.6 deductions, for a current-year ITA 13(7)(e)(i) acquisition (not a passenger vehicle) from a Canadian-resident individual or qualifying partnership that cost more than the transferor's capital cost. Twice this amount is subtracted from the transferor's gain before one half of it is added to the transferor's cost; enter 0 when nil, as a blank holds the class. A negative amount is refused. It is read the same way on a Schedules IV to VI resource row. |
| `assetData[].transferorWasCanadianResidentIndividualOrQualifyingPartnership` | boolean \| null \| string |  | For a current-year non-arm's-length acquisition (not a passenger vehicle) costing more than the transferor's capital cost: whether the transferor was a Canadian-resident individual or a qualifying partnership, true/false/null. True applies ITA 13(7)(e)(i), which takes the section 110.6 amounts off the transferor's gain; false applies (e)(ii); null holds the class. It is read the same way on a Schedules IV to VI resource row. |
| `assetData[].transmittedEnergyFromEligibleGenerationPct` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsEligibleTransmissionEquipment is true: the share of the electrical energy this equipment transmits on an annual basis that the eligible generation equipment generated, as a percentage. The test needs more than 75; 75 or less, a value outside 0 to 100, a value that is not a number, or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].usedWithEligibleGenerationEquipment` | array \| boolean \| null \| number \| object \| string |  | For a Class 43.1 or 43.2 property whose claimsEligibleTransmissionEquipment is true: whether it is used in connection with the corporation's eligible electrical generation equipment, as true, false, Yes or No. Only true or Yes passes the test; false, any other value or blank holds the class. A value stated while that claim is blank also holds the class. Not read otherwise. On a row with several additionCohorts it is refused unless every cohort states the same value. |
| `assetData[].vesselConstructedInCanada` | array \| boolean \| null \| number \| object \| string |  | For a Class 7 vessel (isVessel true): whether it was constructed in Canada, true/false/null, one of the Reg 1101(2a) conditions. With registration in Canada, no use before acquisition and no structured financing facility, the vessel gets its own class and the Reg 1100(1)(v) allowance; false rules that out, and null otherwise holds Class 7. |
| `assetData[].vesselNotUsedBeforeAcquisition` | array \| boolean \| null \| number \| object \| string |  | For a Class 7 vessel (isVessel true): whether it was never used before the corporation acquired it, true/false/null, one of the Reg 1101(2a) conditions for a per-vessel class with the Reg 1100(1)(v) allowance. False rules that class out; null holds Class 7 unless another answer already rules it out. |
| `assetData[].vesselRegisteredInCanada` | array \| boolean \| null \| number \| object \| string |  | For a Class 7 vessel (isVessel true): whether it is registered in Canada, true/false/null, one of the Reg 1101(2a) conditions for a per-vessel class with the Reg 1100(1)(v) allowance. False rules that class out; null holds Class 7 unless another answer already rules it out. |
| `assetData[].vesselStructuredFinancingFacilityApplies` | array \| boolean \| null \| number \| object \| string |  | For a Class 7 vessel (isVessel true): whether a structured financing facility applies, true/false/null. True switches off the Reg 1101(2a) per-vessel class under Reg 1101(2c), leaving ordinary Class 7; false, with the three Reg 1101(2a) conditions true, gives the separate class and the Reg 1100(1)(v) allowance; null holds Class 7 unless a Reg 1101(2a) condition is already false. |
| `assetData[].wasDIEP` | boolean \| null \| string |  | Whether the property was designated immediate expensing property in an earlier year (Reg 1104(3.1)), true/false/null. True counts its disposition proceeds as DIEP proceeds, applies the ITA 13(7)(i) proceeds rule to a Class 10.1 vehicle and keeps its recapture taxable. Where a Class 10.1 class has recapture and no DIEP addition, false lets ITA 13(2) shield it and a blank is refused; conflicting answers within one Class 10.1 class are refused. |
| `assetData[].wouldHaveBeenClass53IfAcquiredIn2025` | array \| boolean \| null \| number \| object \| string |  | For a Class 43 addition with isAIIP true acquired after 2025: whether it would have been Class 53 had it been acquired in 2025, true/false/null. True gives it the Reg 1100(2) element A.1(f) factor for Class 43 property: 2 1/3 where it became available for use before 2030 (with the 30% rate, the full cost in the first year), 1 1/2 in 2030 or 2031, and 5/6 in 2032 or 2033. False gives the general factor, and null holds Class 43 with no allowance. On any other row the answer is not used, but a value other than true, false, Yes, No or blank is refused on every row. |
| `assetData[].wouldOtherwiseBeClass16` | boolean \| null \| string |  | For a Class 55 property: whether the zero-emission vehicle would otherwise be included in Class 16, as true, false or null; another value is refused. Anything but true on a property in the class holds Class 55 with no allowance. Not read in another class. |
| `capitalGainsDividends` | array \| boolean \| null \| number \| object \| string |  | Capital gains dividend rows for Schedule 6 line 875, carrying an amount, provision, and foreign-source and review facts. Enter the full capital gain amount. Omission or null supplies no direct rows; unresolved dividend evidence still raises a filing error. |
| `capitalGainsDividends[]` | array \| boolean \| null \| number \| object \| string |  | Capital gains dividend rows for Schedule 6 line 875, carrying an amount, provision, and foreign-source and review facts. Enter the full capital gain amount. Omission or null supplies no direct rows; unresolved dividend evidence still raises a filing error. |
| `carrybackRequests` | array \| boolean \| null \| number \| object \| string |  |  |
| `carrybackRequests[]` | array \| boolean \| null \| number \| object \| string |  | One entry in the stated collection. |
| `ccaOverrides` | object |  |  |
| `class14_1Transitional` | array \| boolean \| null \| number \| object \| string |  | The Class 14.1 transitional facts block of the W08 fixed-assets workpaper header, carried at the request root. When a persisted fixed-assets workpaper is present its own block governs and a differing root copy is refused; without one the root value is read. |
| `cooperativeCorporation136_2ThroughoutYear` | boolean \| null |  | Whether the corporation met the cooperative-corporation definition throughout the year, used for the Part I full-rate taxable-income calculation. A ready Schedule 24 box 100 operation code 05 supplies a positive answer; a contradictory false answer is rejected. Otherwise omission remains unresolved. Send a boolean; 0/1 and true/false text are also accepted. |
| `daysInYear` | null \| number \| string |  | Number of days in the taxation year, as a positive whole number, driving the ITA s.125(5)(b) short-year proration of the business limit. The third member of the canonical taxation-period trio with fiscalStart and fiscalEnd: all three are mandatory whenever the request reaches Part I through its dependency closure, which most targets do. A missing member is refused before any computation, and a day count that disagrees with the two dates is an error. |
| `deemedForeignExchange` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 deemed foreign-exchange gain or loss rows, with signed amount and transaction-character facts. Omission uses the dedicated foreign-exchange workpapers, or no rows when none exist. Supply one source only; use an empty array for no direct rows, since an explicit null is rejected by the batch reader. |
| `deemedForeignExchange[]` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 deemed foreign-exchange gain or loss rows, with signed amount and transaction-character facts. Omission uses the dedicated foreign-exchange workpapers, or no rows when none exist. Supply one source only; use an empty array for no direct rows, since an explicit null is rejected by the batch reader. |
| `deemedYearEndEvents` | array \| boolean \| null \| number \| object \| string |  | Array of already-proved deemed year-end event objects (eventType plus its ISO event date). The engine projects s.149 status-change events onto post-event basis continuity and reads s.40(3.4)(b)(ii)/(iii) suspended-loss revival events. An emigration event also carries allPropertiesIncluded, propertyRegisterEvidence and propertyRows for the s.128.1(4)(b)/(c) departure-year computation. Each property states its identity, ownership, tax character, FMV, tax cost and valuation source; capital/depreciable rows carry Schedule 6 facts, depreciable rows carry capital cost, class UCC and Schedule 8 facts, and resource rows identify their Schedule 12 pool. Missing facts hold the return and post no partial register. An entry records a proved filing event; it does not establish one. Members are read under these camelCase names only: an event or row member stated under another spelling (for example event_date, date or property_rows) is refused, naming the member to send. |
| `deemedYearEndEvents[]` | array \| boolean \| null \| number \| object \| string |  | One already-proved deemed year-end event. An emigration event carries the complete s.128.1(4)(b)/(c) property register; its departure-year dispositions reach Schedules 6, 8, 12 and 1 and its FMV total supplies Schedule 97's s.219.1 element A. Reacquisition belongs to the following period. Missing character, cost, valuation or pool facts hold the return. |
| `dispositions` | array |  | Current-year property dispositions for Schedule 8. |
| `dispositions[]` | object |  | Current-year property dispositions for Schedule 8. |
| `dispositions[]._rowKey` | null \| string |  |  |
| `dispositions[].acb` | null \| number \| string |  | Adjusted cost base of the property immediately before the disposition, in dollars. Required on every row. A negative entry is refused: reconcile the prior ITA 40(3) deemed gain first (ITA 54, adjusted cost base). |
| `dispositions[].acquisitionWithin61DaysWasRightToAcquireOnly` | array \| boolean \| null \| number \| object \| string |  | Whether that acquisition inside the 61-day window was only a right to acquire the property rather than the property itself. |
| `dispositions[].affiliatedAcquisitionWithin61Days` | array \| boolean \| null \| number \| object \| string |  | Whether the corporation or an affiliated person acquired the same or an identical property in the 61-day period beginning 30 days before the disposition. |
| `dispositions[].affiliatedOwnershipAtEndOfPeriod` | array \| boolean \| null \| number \| object \| string |  | Whether the corporation or an affiliated person still owned the substituted property at the end of that 61-day period, which suspends rather than denies the loss. |
| `dispositions[].allSharesFmvAfterDisposition` | null \| number \| string |  | Total fair market value of all shares of that class held immediately after the disposition, in dollars. |
| `dispositions[].assetClass` | array \| boolean \| null \| number \| object \| string |  | The preparer's own asset grouping label for the row. It is carried for display and reconciliation and does not route the row; propertyType does that. |
| `dispositions[].bilArmsLengthOrSubsection50_1` | array \| boolean \| null \| number \| object \| string |  | Confirms the Part 7 condition that the disposition was one to which subsection 50(1) applies or was made to a person with whom the corporation dealt at arm's length. |
| `dispositions[].bilDebtorDealsAtArmsLength` | array \| boolean \| null \| number \| object \| string |  | For a ccpcDebt row, whether the debtor corporation dealt at arm's length with the corporation. Required by ITA 39(1)(c)(iv). |
| `dispositions[].bilDebtorSbcOrQualifyingFormerSbc` | array \| boolean \| null \| number \| object \| string |  | For a ccpcDebt row, whether the debtor was a small business corporation or a corporation that qualified as one in the preceding twelve months, as ITA 39(1)(c)(iv) requires. |
| `dispositions[].bilQualification` | array \| boolean \| null \| number \| object \| string |  | Which business investment loss property the Part 7 row is. Send sbcShare for a share of a small business corporation or ccpcDebt for a debt owing by a Canadian-controlled private corporation. |
| `dispositions[].bookGainLoss` | null \| number \| string |  | Signed gain or loss already recorded in the financial statements for this disposition, in dollars. It drives the book-to-tax reconciliation. Null means unanswered and blocks the filing projection; enter 0 to confirm none. |
| `dispositions[].ccaClass` | array \| boolean \| null \| number \| object \| string |  | Capital cost allowance class of the disposed depreciable property, such as 1 or 10.1. It links the row to its Schedule 8 class. |
| `dispositions[].changeOfUseEventId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the change-of-use event whose post-change basis this disposition continues. A manual row must not reuse an event the workpapers already derived. |
| `dispositions[].classOfShares` | array \| boolean \| null \| number \| object \| string |  | Class of the shares disposed of, as it prints in the Part 1 shares grid. |
| `dispositions[].controlledCorporationAtAnyTimeInYear` | array \| boolean \| null \| number \| object \| string |  | Whether the corporation whose share was disposed of was controlled by the filer at any time in the year, which engages the paragraph 40(2)(h) loss reduction. |
| `dispositions[].cusipIsin` | array \| boolean \| null \| number \| object \| string |  | CUSIP or ISIN of the security disposed of. With the description and settlement date it identifies the lot, so a duplicated or amended slip is caught. |
| `dispositions[].dateAcquired` | string |  | Date of acquisition of the property, as YYYY-MM-DD. It prints in the date of acquisition column and sets the holding period the loss rules measure. |
| `dispositions[].dateOfDisposition` | string |  | Date of the disposition, as YYYY-MM-DD. It dates the gain in the year, the capital dividend account event, and every rule measured from the disposition. |
| `dispositions[].debtAcquiredAsArmsLengthCapitalPropertyConsideration` | array \| boolean \| null \| number \| object \| string |  | Whether the debt was received as consideration for the disposition of capital property to an arm's-length person, the other way out of the paragraph 40(2)(g)(ii) denial. |
| `dispositions[].debtAcquiredForIncomePurpose` | array \| boolean \| null \| number \| object \| string |  | Whether the debt was acquired for the purpose of gaining or producing income from a business or property. Without it, paragraph 40(2)(g)(ii) denies the loss. |
| `dispositions[].description` | array \| boolean \| null \| number \| object \| string |  | Name or description of the disposed property, as it prints in the grid: the corporation whose shares were held, the municipal address, the bond issuer, or the description of other, personal-use or listed personal property. |
| `dispositions[].disposedToDesignatedInstitution` | array \| boolean \| null \| number \| object \| string |  | Whether the certified cultural property was disposed of to a designated institution or public authority. Both this and isCertifiedCulturalProperty are needed for the ITA 39(1)(a)(i.1) exclusion. |
| `dispositions[].dispositionReconciliationId` | array \| boolean \| null \| number \| object \| string |  | Foreign key to the current-year capital disposition workpaper row this disposition reconciles to. |
| `dispositions[].distressPreferredShareIssueDate` | string |  | Date the distress preferred share was issued, as YYYY-MM-DD. It settles whether the share was outstanding at the settlement. |
| `dispositions[].faceValue` | null \| number \| string |  | Face value of the bonds disposed of, as it prints in the Part 3 bonds grid. |
| `dispositions[].fairMarketValue` | null \| number \| string |  | Fair market value of the property at the time of the disposition, in dollars. It becomes the proceeds where ITA 69(1)(b) applies. |
| `dispositions[].flowThroughShareClass` | array \| boolean \| null \| number \| object \| string |  | Identifier of the flow-through share class the donated property belongs to, so the exemption threshold is applied to the right class. |
| `dispositions[].flowThroughShareExemptionThreshold` | null \| number \| string |  | Exemption threshold of the flow-through share class at the time of the disposition, in dollars. It is the first of the two amounts the subsection 40(12) deemed gain is the lesser of. |
| `dispositions[].foreignCurrency` | array \| boolean \| null \| number \| object \| string |  | Currency the row's amounts are stated in, as a three-letter ISO 4217 code. A row in a currency other than the reporting currency is held for review until it is converted. |
| `dispositions[].fxConverted` | array \| boolean \| null \| number \| object \| string |  | Confirms the row's amounts have already been converted to the reporting currency at the rate for the day of the transaction. |
| `dispositions[].fxReviewReason` | array \| boolean \| null \| number \| object \| string |  | Short reason the row is held for foreign exchange review, shown beside the hold. |
| `dispositions[].giftEligibleAmount` | null \| number \| string |  | Eligible amount of the gift, in dollars. Where an advantage was received, only the part of the gain attributable to the eligible amount is zero rated. |
| `dispositions[].giftKind` | array \| boolean \| null \| number \| object \| string |  | Which zero inclusion rate the donation claims. Send 38(a.1) for a listed security donated to a qualified donee or 38(a.2) for ecologically sensitive land. |
| `dispositions[].inclusionRate` | array \| boolean \| null \| number \| object \| string |  | Declared inclusion character of the row. Schedule 6 accepts capital-property rows only, so a value naming a 100% or income-account treatment is refused: route ordinary income through a business-income workpaper instead. |
| `dispositions[].interveningAcbAdjustment` | array \| boolean \| null \| number \| object \| string |  | Signed net adjustment to the adjusted cost base between the prior change-of-use event and this disposition, in dollars. Send it with its dated ledger reference; it needs a preceding change event. |
| `dispositions[].interveningAcbAdjustmentReference` | array \| boolean \| null \| number \| object \| string |  | Reference to the supporting basis ledger for the intervening adjustment. It is required whenever an intervening adjustment is entered. |
| `dispositions[].interveningAcbAdjustmentThroughDate` | array \| boolean \| null \| number \| object \| string |  | Date through which that intervening basis ledger runs, as YYYY-MM-DD. |
| `dispositions[].isActiveAsset` | array \| boolean \| null \| number \| object \| string |  | Whether the property was used in an active business. It splits the taxable capital gain between active-business and investment character for the small business deduction and aggregate investment income. |
| `dispositions[].isBusinessInvestmentLoss` | array \| boolean \| null \| number \| object \| string |  | Whether the row is a business investment loss. It routes the row to the Part 7 allowable business investment loss grid (ITA 39(1)(c)). |
| `dispositions[].isCertifiedCulturalProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the property is certified cultural property. A gain on its disposition to a designated institution is excluded from capital gains. |
| `dispositions[].isDebtOrRightToReceive` | array \| boolean \| null \| number \| object \| string |  | Whether the property is a debt or other right to receive an amount. It engages the ITA 40(2)(g)(ii) loss denial unless the debt was acquired for an income purpose or as arm's-length consideration. |
| `dispositions[].isDepreciableProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the disposed property is depreciable property. A loss on depreciable property is not a capital loss: recapture and terminal loss are computed on Schedule 8 instead (ITA 39(1)(b)(i)). |
| `dispositions[].isDispositionToAffiliatedIssuer` | array \| boolean \| null \| number \| object \| string |  | Whether the share was disposed of to the issuing corporation and the filer was affiliated with it immediately after, in which case the loss is deemed nil. |
| `dispositions[].isDistressPreferredShare` | array \| boolean \| null \| number \| object \| string |  | Whether the share qualified as a distress preferred share at the time of settlement, which is part of the commercial obligation definition in subsection 80(1). |
| `dispositions[].isExcludedGift` | array \| boolean \| null \| number \| object \| string |  | Whether the personal-use property was disposed of as a charitable, cultural or ecological gift, which takes the row out of the ITA 46(1) $1,000 floor. |
| `dispositions[].isFlowThroughShareClass` | array \| boolean \| null \| number \| object \| string |  | Whether the donated property is included in a flow-through share class of property. Subsection 40(12) restores a deemed capital gain above the exemption threshold. |
| `dispositions[].isForeignAffiliateShare` | array \| boolean \| null \| number \| object \| string |  | Whether the disposed share is a share of a foreign affiliate. It opens the ITA 92(2) adjusted cost base reduction and the ITA 93 election path. |
| `dispositions[].isForeignSource` | array \| boolean \| null \| number \| object \| string |  | Whether the gain or loss is foreign source. It splits the row into the foreign stream for the foreign tax credit and for aggregate investment income. |
| `dispositions[].isGiftDisposition` | array \| boolean \| null \| number \| object \| string |  | Whether the property was disposed of by way of gift. Proceeds are then the fair market value of the property. |
| `dispositions[].isListedPersonalProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the property is listed personal property. A listed personal property row is siloed: its losses may be applied only against listed personal property gains (ITA 41). |
| `dispositions[].isNonArmsLengthDisposition` | array \| boolean \| null \| number \| object \| string |  | Whether the corporation disposed of the property to a person it does not deal with at arm's length (ITA 69(1)(b)(i)); proceeds below fair market value are deemed to be fair market value. |
| `dispositions[].isOptionWithRespectToDepreciableOrRealProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the disposed capital property is an option with respect to depreciable or real property, which engages the subsection 13(5.3) deemed recapture. |
| `dispositions[].isPartDisposition` | array \| boolean \| null \| number \| object \| string |  | Whether only part of a personal-use property was disposed of while another part was retained, so the $1,000 floor is apportioned (ITA 46(2)). |
| `dispositions[].isPartOfSet` | array \| boolean \| null \| number \| object \| string |  | Whether the personal-use property disposed of is part of a set that is ordinarily disposed of as a set, so ITA 46(3) treats each disposition as a disposition of a part. |
| `dispositions[].isPrescribedClassDepreciableProperty` | array \| boolean \| null \| number \| object \| string |  | Whether the depreciable property belongs to a prescribed class. It settles which Schedule 8 class receives the disposition. |
| `dispositions[].isPrivateFoundationDonee` | array \| boolean \| null \| number \| object \| string |  | Whether the donee is a private foundation. Paragraph 38(a.2) expressly excludes a gift of ecologically sensitive land to a private foundation. |
| `dispositions[].isRelatedSegregatedFundTrustInterest` | array \| boolean \| null \| number \| object \| string |  | Whether the property is an interest in a related segregated fund trust. A gift of such an interest to a qualified donee is zero rated under ITA 38(a.1)(i). |
| `dispositions[].isSubsection50_2Debt` | array \| boolean \| null \| number \| object \| string |  | Whether the debt is one to which subsection 50(2) applies: a debt that is personal-use property of the corporation, owed by a person it deals with at arm's length, and established to have become a bad debt in the year. The corporation is then deemed to have disposed of it at the end of the year for proceeds equal to its adjusted cost base less the gain, if any, already reported on the personal-use property whose proceeds of disposition included the debt, and to have reacquired it immediately after the end of the year at that same cost. |
| `dispositions[].isTrustDispositionWithoutBeneficialOwnershipChange` | array \| boolean \| null \| number \| object \| string |  | Whether the transfer is to a trust with no change in beneficial ownership, which is outside the ITA 69(1)(b) deemed proceeds rule. |
| `dispositions[].maturityDate` | string |  | Maturity date of the bonds disposed of, as YYYY-MM-DD. It prints in the Part 3 bonds grid. |
| `dispositions[].needsFxReview` | array \| boolean \| null \| number \| object \| string |  | Marks the row for a foreign exchange review, which holds the filing projection until fxConverted is confirmed. |
| `dispositions[].numberOfShares` | null \| number \| string |  | Number of shares disposed of. It prints in the Part 1 shares grid and is the denominator for the ITA 40(3.3) and 40(3.4) split when only part of the identical shares were reacquired. |
| `dispositions[].obligationPayableToTransfereeImmediatelyAfterDisposition` | array \| boolean \| null \| number \| object \| string |  | Whether the transferred obligation was payable to the transferee immediately after the disposition. With a related transferor, transferee and debtor, the loss is deemed nil. |
| `dispositions[].outlays` | null \| number \| string |  | Outlays and expenses made or incurred for the purpose of making the disposition, in dollars. Required on every row; enter 0 for reviewed nil (ITA 40(1)(a)(i)). |
| `dispositions[].paragraph40_2_dApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the loss is on a bond, debenture or other debt obligation whose interest was exempt under paragraph 81(1)(m), so paragraph 40(2)(d) reduces the loss. |
| `dispositions[].paragraph40_2_dExemptInterest` | null \| number \| string |  | Interest excluded from income under paragraph 81(1)(m) that reduces the loss, in dollars. |
| `dispositions[].paragraph40_2_e_2Applies` | array \| boolean \| null \| number \| object \| string |  | Whether the loss is on a commercial obligation settled in the year, so paragraph 40(2)(e.2) reduces it by the statutory settlement ratio. |
| `dispositions[].paragraph40_2_e_2ReplacementObligationsFmv` | null \| number \| string |  | Amount C of paragraph 40(2)(e.2): fair market value of the replacement commercial obligations included in amount B, in dollars. |
| `dispositions[].paragraph40_2_e_2SettlementConsiderationFmv` | null \| number \| string |  | Amount B of paragraph 40(2)(e.2): fair market value of all consideration given to settle the obligation, in dollars. |
| `dispositions[].paragraph40_2_e_3ForeignAffiliateExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the paragraph 40(2)(e.3) foreign affiliate exception takes the settlement out of paragraph 40(2)(e.2). |
| `dispositions[].paragraph40_2_fApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the gain or loss arises on a chance to win a prize or bet, or a right to receive an amount as a prize or as winnings on a bet, in which case it is nil. |
| `dispositions[].paragraph40_2_iApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the share loss is reduced by prescribed assistance received in respect of, or for the acquisition of, the share. |
| `dispositions[].paragraph40_2_iAssistanceAlreadyApplied` | null \| number \| string |  | The part of that prescribed assistance already reflected in the computed loss, in dollars, so it is not deducted twice. |
| `dispositions[].paragraph40_2_iPrescribedAssistance` | null \| number \| string |  | Prescribed assistance received in respect of, or for the acquisition of, the share, in dollars. |
| `dispositions[].paragraph53_1_f_1AdditionsDuringControl` | null \| number \| string |  | Additions to the adjusted cost base of the share under paragraph 53(1)(f.1) made while the corporation was controlled, in dollars. |
| `dispositions[].priorSubsection40_2_hLossReductions` | null \| number \| string |  | Loss reductions already taken under paragraph 40(2)(h) in prior years in respect of the same additions, in dollars, so the same amount is not deducted twice. |
| `dispositions[].proceeds` | null \| number \| string |  | Proceeds of disposition for the row, in dollars. Required on every row and never blank: it is the first operand of the gain under ITA 40(1)(a)(i). Enter 0 for a nil-proceeds disposition. |
| `dispositions[].propertyGroupId` | array \| boolean \| null \| number \| object \| string |  | Identifier that groups the building and the land it sits on, so subsection 13(21.1) can measure the two dispositions together. |
| `dispositions[].propertyId` | array \| boolean \| null \| number \| object \| string |  | Stable identifier for the disposed property. It links the row to a change-of-use event, an acquisition-of-control designation, a section 55 receiver, a transfer pricing basis record and a suspended loss. |
| `dispositions[].propertyType` | null \| string |  | Which Schedule 6 grid the row prints in. Send one of shares, realEstate, bonds, other, personalUse, listedPersonalProperty or businessInvestment. Blank leaves the row unrouted, which blocks the filing projection once the row carries amounts. |
| `dispositions[].propertyUseDeductionByTaxpayerOrNonArmsLengthPerson` | array \| boolean \| null \| number \| object \| string |  | Whether the corporation or a non-arm's-length person deducted an amount paid for the use of, or the right to use, the underlying property. Subsection 13(5.3) needs the answer. |
| `dispositions[].quantity` | array \| boolean \| null \| number \| object \| string |  | Quantity of the security disposed of, used with the security identity and settlement date to match a slip lot. |
| `dispositions[].reacquiredQuantity` | null \| number \| string |  | How many of the disposed identical properties were reacquired inside the 61-day window. It cannot exceed numberOfShares; subsections 40(3.3) and 40(3.4) operate per particular property. |
| `dispositions[].reportCode` | array \| boolean \| null \| number \| object \| string |  | Slip report code for a row sourced from a securities disposition slip. Send O for original, A for amended or C for cancelled. An amendment replaces the lot it supersedes and a cancelled row never reaches Schedule 6. |
| `dispositions[].retainedSharesFmvAfterDisposition` | null \| number \| string |  | Fair market value of the shares of that class retained immediately after the disposition, in dollars. It apportions the denied loss to the retained shares. |
| `dispositions[].rightToAcquireSubstitutedPropertyAtEndOfPeriod` | array \| boolean \| null \| number \| object \| string |  | Whether a right to acquire the substituted property was held at the end of the 61-day period, which is enough for the section 54 superficial loss test. |
| `dispositions[].rolloverElectionApplies` | array \| boolean \| null \| number \| object \| string |  | Whether a rollover election governs the transfer, so an elected amount rather than fair market value is the proceeds. |
| `dispositions[].sbcSharePre1972Status` | array \| boolean \| null \| number \| object \| string |  | Pre-1972 history of the small business corporation share for the business investment loss. Send notPre1972, pre1972, or pre1972AcquiredArmsLengthAfter1971. |
| `dispositions[].section13_21_1HistoricalNecessaryLandOwnership` | boolean \| null \| string |  | Whether the land was necessary for the use of the building and was owned as such. Answer yes or no. |
| `dispositions[].section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson` | boolean \| null \| string |  | Whether the corporation or a non-arm's-length person also disposed of that land in the year. Answer yes or no; paragraph 13(21.1)(b) turns on it. |
| `dispositions[].section13_21_1LandFairMarketValue` | null \| number \| string |  | Fair market value of the subjacent and immediately contiguous land at the time of the disposition, in dollars. |
| `dispositions[].section13_21_1PriorThreeYearNonArmsLengthLandCapitalGains` | null \| number \| string |  | Capital gains on that land realised by the corporation or a non-arm's-length person in the three preceding years, in dollars, which paragraph 13(21.1)(b) brings into the terminal loss limit. |
| `dispositions[].section13_5_3OptionCost` | array \| boolean \| null \| number \| object \| string |  | The corporation's cost in respect of the option, in dollars. Adjusted cost base is not proof of it, so the row must state it. The excess of proceeds over this cost is deemed recapture. |
| `dispositions[].section149PropertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `dispositions[].section92_2AcbBeforeReductionCAD` | null \| number \| string |  | Adjusted cost base of the foreign affiliate share before the subsection 92(2) reduction, in Canadian dollars. |
| `dispositions[].section92_2ForeignIncomeOrProfitsTaxCAD` | null \| number \| string |  | Foreign income or profits tax paid in respect of those dividends, in Canadian dollars, which is added back under subsection 92(2). |
| `dispositions[].section92_2PreAcquisitionSurplusDividendsCAD` | null \| number \| string |  | Pre-acquisition surplus dividends received on the share, in Canadian dollars, which reduce its adjusted cost base under subsection 92(2). |
| `dispositions[].section93ElectionId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the subsection 93(1) election filed for this share disposition. It links the row to the elected dividend amount, which reduces the proceeds. |
| `dispositions[].setAcb` | null \| number \| string |  | Adjusted cost base of the SET, in dollars, when the row is part of a set. It replaces wholePropertyAcb as the ITA 46(3) denominator for the apportioned floor. |
| `dispositions[].stopLossAllNewSharesAcbImmediatelyAfterExchange` | null \| number \| string |  | Total adjusted cost base of ALL shares received on the exchange immediately after it, in dollars. It apportions the old share dividends to this row. |
| `dispositions[].stopLossDividendsDeducted` | null \| number \| string |  | Dividends received on the share and deducted under section 112 or 113, in dollars. They reduce the share loss under subsection 112(3). |
| `dispositions[].stopLossExchangedShareStatus` | array \| boolean \| null \| number \| object \| string |  | Whether the share disposed of was received on an exchange, so the subsection 112(5.5) and 112(5.6) substituted share rules apply. |
| `dispositions[].stopLossNewShareAcbImmediatelyAfterExchange` | null \| number \| string |  | Adjusted cost base of this new share immediately after the exchange, in dollars. |
| `dispositions[].stopLossOldShareAcbImmediatelyBeforeExchange` | null \| number \| string |  | Adjusted cost base of the old share immediately before the exchange, in dollars. It is the denominator of the old share allocation. |
| `dispositions[].stopLossOldShareDividendsDeducted` | null \| number \| string |  | Dividends deducted on the OLD share given up on the exchange, in dollars. |
| `dispositions[].stopLossOldShareQualifiedDividends` | null \| number \| string |  | The part of the old share dividends that are qualified dividends, in dollars. |
| `dispositions[].stopLossOldShareQualifiedDividendsFivePercentTestAmount` | null \| number \| string |  | Old share qualified dividends measured for the five per cent ownership test, in dollars. |
| `dispositions[].stopLossOwnedThroughout365Days` | array \| boolean \| null \| number \| object \| string |  | Whether the share was owned throughout the 365 days before the disposition, one limb of the qualified dividend definition. |
| `dispositions[].stopLossOwnershipPercentage` | null \| number \| string |  | Percentage of the issued shares of that class owned by the corporation and non-arm's-length persons, for the five per cent test. |
| `dispositions[].stopLossQualifiedDividends` | null \| number \| string |  | The part of those dividends that are qualified dividends for subsection 112(3), in dollars. |
| `dispositions[].stopLossQualifiedDividendsFivePercentTestAmount` | null \| number \| string |  | Qualified dividends measured for the five per cent ownership test in the subsection 112(6) definition, in dollars. |
| `dispositions[].subsection100ExceptionKind` | array \| boolean \| null \| number \| object \| string |  | Which subsection 100 exception is claimed. Send 1.2 for the de minimis interest exception or 1.3 for the Canadian permanent establishment property exception. |
| `dispositions[].subsection100PortionAt100Percent` | null \| number \| string |  | Portion of the capital gain on the partnership interest that is subject to a 100 per cent inclusion rate, in dollars. It prints as the amount doubled at line 902. |
| `dispositions[].subsection100_1_2RequirementsMet` | array \| boolean \| null \| number \| object \| string |  | Confirms every requirement of the subsection 100(1.2) de minimis exception is met. |
| `dispositions[].subsection100_1_3AllPartnershipPropertyFmv` | null \| number \| string |  | Fair market value of all partnership property, in dollars. It is the denominator of the 100(1.3) ratio test and must be positive. |
| `dispositions[].subsection100_1_3PeReviews` | array \| boolean \| null \| number \| object \| string |  | The Regulation 8201 permanent establishment reviews immediately before and immediately after the disposition, one row each with timing set to before or after, carrying the fixed place of business, agent authority and the other tests that regulation lists. |
| `dispositions[].subsection100_1_3PropertyUsedThroughCanadianPeAfter` | array \| boolean \| null \| number \| object \| string |  | Whether that property continued to be used in a business carried on through a Canadian permanent establishment immediately after the disposition. |
| `dispositions[].subsection100_1_3PropertyUsedThroughCanadianPeBefore` | array \| boolean \| null \| number \| object \| string |  | Whether the partnership property was used in a business carried on through a Canadian permanent establishment immediately before the disposition. |
| `dispositions[].subsection100_1_3QualifyingPropertyFmv` | null \| number \| string |  | Fair market value of the qualifying partnership property, in dollars. It is the numerator of the 100(1.3) ratio test. |
| `dispositions[].subsection100_1_3TransfereeIs100_1_1_bNonresident` | array \| boolean \| null \| number \| object \| string |  | Whether the acquirer of the partnership interest is the non-resident person described in paragraph 100(1.1)(b), the case the 100(1.3) exception is written for. |
| `dispositions[].subsection112_3Pre1995AgreementExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | Whether the pre-1995 written agreement exception takes the share out of the subsection 112(3) loss reduction. |
| `dispositions[].subsection112_5_5Applies` | array \| boolean \| null \| number \| object \| string |  | Whether subsection 112(5.5) applies to carry the old share dividends onto the substituted share. |
| `dispositions[].subsection112_5_6Applies` | array \| boolean \| null \| number \| object \| string |  | Whether subsection 112(5.6) applies to the substituted share. |
| `dispositions[].subsection39_1Exclusion` | array \| boolean \| null \| number \| object \| string |  | Which ITA 39(1) excluded property the row is, when it is one. Send none, canadianResourceProperty, foreignResourceProperty, timberResourceProperty, insurancePolicy, qualifyingEnvironmentalTrustInterest or section142DispositionApplies. |
| `dispositions[].subsection39_1_c_viTaxableDividends` | null \| number \| string |  | Taxable dividends received on the share that reduce the business investment loss, in dollars. |
| `dispositions[].subsection40_3_3DispositionExclusion` | array \| boolean \| null \| number \| object \| string |  | Which section 54 superficial loss carve-out the disposition falls in, when one applies. Send none or one of superficialLoss54c through superficialLoss54g. |
| `dispositions[].subsection46_4Applies` | array \| boolean \| null \| number \| object \| string |  | Whether the underlying personal-use property depreciated while used to gain income, so subsection 46(4) reduces the gain or loss by that decline. |
| `dispositions[].subsection46_4GainLossWithoutDecrease` | null \| number \| string |  | Signed gain or loss computed without the ITA 46(4) decline in value, in dollars. Required when subsection46_4Applies is answered yes. |
| `dispositions[].subsection85_4AcbIncrease` | null \| number \| string |  | Increase in the adjusted cost base of the share under subsection 85.1(4), in dollars, which reduces the business investment loss. |
| `dispositions[].superficialLossSubstitutedPropertyAcquirer` | array \| boolean \| null \| number \| object \| string |  | Who acquired the substituted property. Send taxpayer or affiliatedPerson. |
| `dispositions[].superficialLossSubstitutedPropertyId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the substituted property acquired inside the 61-day window, so the suspended loss is tracked against it. |
| `dispositions[].suspensionId` | array \| boolean \| null \| number \| object \| string |  | Identifier the corporation carries the suspended loss under, so a later revival can be matched to this row. It defaults to propertyId when blank. |
| `dispositions[].transferorTransfereeAndDebtorRelated` | array \| boolean \| null \| number \| object \| string |  | Whether the transferor, the transferee and the debtor were related at the time of the transfer, the other condition of paragraph 40(2)(e.1). |
| `dispositions[].wholePropertyAcb` | null \| number \| string |  | Adjusted cost base of the WHOLE personal-use property, in dollars. It is the denominator ITA 46(2)(a)(ii) uses to apportion the $1,000 floor to the part disposed of. Required on a part disposition. |
| `dispositions[].yearAcquired` | array \| boolean \| null \| number \| object \| string |  | Year of acquisition, as a four-digit year, for a row whose exact acquisition date is not available. A full date in dateAcquired governs whenever it is present. |
| `engagementPeriods` | array \| null |  | Taxation-period history as an array of objects containing id, periodStart and yearEnd, with dates in YYYY-MM-DD form. Schedule 31 uses it to order prior periods, and Schedule 54 and pool tracking use it to find a prior period start from its year-end. Omitted, empty or malformed history does not establish a usable period sequence; dependent history checks remain unresolved. A period superseded by an amendment states amendedByTaxYearId and is not read as a second period. A period stating taxYearId, period_start or fiscalStart, year_end or fiscalEnd, or amended_by_tax_year_id is refused, naming id, periodStart, yearEnd or amendedByTaxYearId. |
| `engagementPeriods[]` | object |  | Taxation-period history as an array of objects containing id, periodStart and yearEnd, with dates in YYYY-MM-DD form. Schedule 31 uses it to order prior periods, and Schedule 54 uses it to find a prior period start from its year-end. Omitted, empty or malformed history does not establish a usable period sequence; dependent history checks remain unresolved. A period superseded by an amendment states amendedByTaxYearId and is not read as a second period. A period stating taxYearId, period_start or fiscalStart, year_end or fiscalEnd, or amended_by_tax_year_id is refused, naming id, periodStart, yearEnd or amendedByTaxYearId. |
| `entityId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the filing corporation, used by Schedule 42 and predecessor-continuity checks to match authenticated evidence, and to identify statutory proration periods. The identifier does not authorize access to another corporation. Omission prevents predecessor evidence from matching; proration labels may fall back to the filing BN or tax-year identifier. |
| `fiscalEnd` | null \| string |  | The last day of the taxation year in ISO YYYY-MM-DD form, which bounds every disposition date. Send it with fiscalStart and daysInYear: the three are the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure. Strict YYYY-MM-DD, and not before fiscalStart. |
| `fiscalStart` | null \| string |  | The first day of the taxation year (ISO YYYY-MM-DD). With fiscalEnd and daysInYear it is the canonical taxation-period trio, and all three are mandatory whenever the request reaches Part I through its dependency closure — the request is refused before any computation when one is missing. The bounds also drive Schedule 8's Reg 1100(3) short-year CCA proration and the Reg 1104(3.5)(b) immediate-expensing limit proration. |
| `functionalCurrencyContext` | null \| object |  | The functional-currency election sidecar for the taxation year, used to restate statutory dollar thresholds under ITA s.261(5)(b). Send it only for a functional-currency filer; it carries reportingCurrency, periodStart and a firstDayRate object with rate, spotRateSource and firstDayDate. Statutory comparisons use the unrounded conversion. |
| `functionalCurrencyContext.firstDayRate` | null \| object |  |  |
| `functionalCurrencyContext.firstDayRate.firstDayDate` | array \| boolean \| null \| number \| object \| string |  |  |
| `functionalCurrencyContext.firstDayRate.rate` | number \| string |  |  |
| `functionalCurrencyContext.firstDayRate.spotRateSource` | string |  |  |
| `functionalCurrencyContext.periodStart` | array \| boolean \| null \| number \| object \| string |  |  |
| `functionalCurrencyContext.reportingCurrency` | null \| string |  |  |
| `functionalCurrencyIso` | array \| boolean \| null \| number \| object \| string |  | T2 jacket box 079 ISO-4217 currency code for an ITA s.261 functional-currency election. Send it only when the return is reported in a currency other than CAD, in which case Schedule 100 will not compute until schedule100.functionalCurrencyT1296OnFile is true and the T1296 acceptance letter is on file. |
| `gifiStatementCoverage` | array \| boolean \| null \| number \| object \| string |  | Statement-coverage evidence for the GIFI financial statements. The engine's coverage check reads it on every computation and answers a finding when it is not the expected object. |
| `glDisposals` | array \| boolean \| null \| number \| object \| string |  |  |
| `immediateExpensingAgreement` | array \| boolean \| null \| number \| object \| string |  | The immediate-expensing agreement block of the W08 fixed-assets workpaper header, carried at the request root. When a persisted fixed-assets workpaper is present its own block governs and a differing root copy is refused; without one the root value is read. For a taxation period wholly after 2023 the agreement is ignored, because Reg 1104(3.1)(b)(ii) requires a CCPC's property to become available for use before 2024. |
| `incomeStatementFlags` | object |  |  |
| `isCCPC` | boolean \| null |  | The corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. |
| `issuedObligationRepurchases` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 repurchases of the corporation's issued obligations, with issue amount, purchase price, principal and open-market and income-treatment facts. Omission uses dedicated repurchase workpapers, or no rows when none exist. Supply one source only; use an empty array for no direct rows, since explicit null is rejected. |
| `issuedObligationRepurchases[]` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 repurchases of the corporation's issued obligations, with issue amount, purchase price, principal and open-market and income-treatment facts. Omission uses dedicated repurchase workpapers, or no rows when none exist. Supply one source only; use an empty array for no direct rows, since explicit null is rejected. |
| `lppLossCarryforward` | array \| boolean \| null \| number \| object \| string |  |  |
| `lppLossCarryforward[]` | array \| boolean \| null \| number \| object \| string |  | One entry in the stated collection. |
| `nqsGiftDeferrals` | array \| boolean \| null \| number \| object \| string |  |  |
| `nqsGiftDeferrals[]` | array \| boolean \| null \| number \| object \| string |  | One entry in the stated collection. |
| `part4ExclusionAmounts` | object |  | Schedule 3 Part 4 exclusion amounts keyed by capitalGainsDividends (line 520), dividends129_1_2 (line 530), bankruptControllingCorporation (line 540), and eligiblePortion. Use numbers or numeric strings. Omission uses held coverage-review amounts if available; otherwise no transported exclusions are applied and applicable coverage holds remain. |
| `part4ExclusionAmounts.bankruptControllingCorporation` | array \| boolean \| null \| number \| object \| string |  |  |
| `part4ExclusionAmounts.capitalGainsDividends` | array \| boolean \| null \| number \| object \| string |  |  |
| `part4ExclusionAmounts.dividends129_1_2` | array \| boolean \| null \| number \| object \| string |  |  |
| `part4ExclusionAmounts.eligiblePortion` | array \| boolean \| null \| number \| object \| string |  |  |
| `partIVLossClaims` | object |  | Elective Schedule 3 Part IV loss claims keyed by currentYearNonCapital (line 330), priorYearNonCapital (line 335), currentYearFarm (line 340), and priorYearFarm (line 345). Use non-negative numbers or numeric strings. Omission uses held coverage-review claims if available; otherwise claims are not maximized and applicable coverage holds remain. |
| `partIVLossClaims.currentYearFarm` | array \| boolean \| null \| number \| object \| string |  |  |
| `partIVLossClaims.currentYearNonCapital` | array \| boolean \| null \| number \| object \| string |  |  |
| `partIVLossClaims.priorYearFarm` | array \| boolean \| null \| number \| object \| string |  |  |
| `partIVLossClaims.priorYearNonCapital` | array \| boolean \| null \| number \| object \| string |  |  |
| `partnershipNegativeAcb` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 partnership-interest negative adjusted-cost-base facts and related gain or loss-election rows. Omission derives rows from partnership-slip-income workpapers when present, otherwise supplies no direct rows. A non-empty direct array alongside those workpapers is rejected. |
| `partnershipNegativeAcb[]` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 partnership-interest negative adjusted-cost-base facts and related gain or loss-election rows. Omission derives rows from partnership-slip-income workpapers when present, otherwise supplies no direct rows. A non-empty direct array alongside those workpapers is rejected. |
| `pinnedFormRevisions` | null \| object |  | Map from form identifiers such as S8 or T2 to nonempty CRA footer revision codes. Each pin selects the form revision for computation; omission leaves selection to the registered year rules. Invalid or unsupported pins fail rather than silently switching revisions. Saved-engagement scenarios reserve this map to the saved return and do not allow caller overrides. |
| `postDispositionAdjustments` | null \| object |  | Complete post-disposition assistance and legally required repayments for S8 221/222. Signed UCC adjustments and Reg 1100(2) elements F/G are computed; no keyed adjustment total is accepted. |
| `postDispositionAdjustments.complete` | boolean | strict | Confirm the complete disposed-property transaction roster. |
| `postDispositionAdjustments.confirmed` | boolean | strict | Confirm the legal treatment, dates, ownership and assistance reconciliation after reviewing source evidence. |
| `postDispositionAdjustments.evidenceRef` | string | strict | Supporting complete post-disposition reconciliation reference. |
| `postDispositionAdjustments.pools` | array |  | Unique existing class/property pools with explicit openings, including zero. |
| `postDispositionAdjustments.pools[]` | object |  | One identified pool and its post-disposition records. |
| `postDispositionAdjustments.pools[].assetCount` | number | strict | Actual remaining tax-property count, including deemed ownership, for terminal-loss and continuing-pool treatment. |
| `postDispositionAdjustments.pools[].businessCeased` | boolean \| null | strict | Actual Class 14.1 business-cessation conclusion when no tax properties remain; null when irrelevant. |
| `postDispositionAdjustments.pools[].ccaClass` | string | strict | Canonical CCA class identity. |
| `postDispositionAdjustments.pools[].propertyId` | string | strict | Canonical separate-pool property ID, or empty text for an ordinary common pool. |
| `postDispositionAdjustments.pools[].transactions` | array |  | Unique source events. A current-year original disposition must also be recorded in W08; this packet does not replace its proceeds. |
| `postDispositionAdjustments.pools[].transactions[]` | object |  | One assistance receipt/entitlement or legally required repayment after the identified disposition. |
| `postDispositionAdjustments.pools[].transactions[].afterDispositionConfirmed` | boolean | strict | Confirm the transaction occurred after disposition, including actual order where both dates are the same. |
| `postDispositionAdjustments.pools[].transactions[].amount` | string | strict | Exact nonnegative decimal text in the return reporting currency. |
| `postDispositionAdjustments.pools[].transactions[].assistanceId` | string | strict | Stable property-specific assistance allocation identity for the repayment ledger. |
| `postDispositionAdjustments.pools[].transactions[].capitalCostTreatmentConfirmed` | boolean | strict | Confirm the amount would have reduced/increased capital cost under the selected provision if received/repaid before disposition. |
| `postDispositionAdjustments.pools[].transactions[].disposedPropertyId` | string | strict | Stable original disposed-property identity. A Class 10.1 vehicle must match its separate-pool ID. |
| `postDispositionAdjustments.pools[].transactions[].dispositionDate` | string | strict | Actual original property disposition date. |
| `postDispositionAdjustments.pools[].transactions[].elementFExclusion` | string | strict | Original-property Reg 1100(2) F(b) treatment: none, exempt class, vessel, listed Class 10/12 paragraph, specified leasing, s.16.1, or deemed available-for-use exclusion. |
| `postDispositionAdjustments.pools[].transactions[].evidenceRef` | string | strict | Source notice, agreement, entitlement and payment reference. |
| `postDispositionAdjustments.pools[].transactions[].id` | string | strict | Unique event identity; one event cannot be applied twice. |
| `postDispositionAdjustments.pools[].transactions[].kind` | string | strict | Assistance or repayment, kept separate for printed 221/222 and first-year allowance arithmetic. |
| `postDispositionAdjustments.pools[].transactions[].legallyRequired` | boolean | strict | Confirm the repayment was made pursuant to its legal obligation; voluntary payments do not establish line 222. |
| `postDispositionAdjustments.pools[].transactions[].originalAssistance` | string | strict | Exact original eligible assistance allocated to this disposed property. |
| `postDispositionAdjustments.pools[].transactions[].priorRepayments` | string | strict | Exact cumulative repayments before this taxation year. Current rows are accumulated once by assistance identity. |
| `postDispositionAdjustments.pools[].transactions[].statutoryBasis` | string | strict | Assistance: 13(7.1)(f); repayment: 13(7.1)(d) or 13(7.4)(b), as used by ITA 13(21) elements C/D/J. |
| `postDispositionAdjustments.pools[].transactions[].transactionDate` | string | strict | Current-period receipt/entitlement or actual repayment date. |
| `postDispositionAdjustments.pools[].transactions[].wasDIEP` | boolean | strict | Whether the disposed property was ever designated immediate-expensing property; controls the Class 10.1 recapture exception. |
| `priorTaxYearEnd` | null \| string |  |  |
| `priorYearS13_7_1UccReduction` | object |  | Schedule 31's prior-year qualified-property investment tax credit grind on undepreciated capital cost under ITA s.13(7.1), as an object with appliesToTaxYear, itcDeductedQp, itcRefundedQp, total, byClass and unattributed. Send it in the year immediately after the credit was claimed. |
| `priorYearS13_7_1UccReduction.appliesToTaxYear` | array \| boolean \| null \| number \| object \| string |  |  |
| `priorYearS13_7_1UccReduction.byClass` | array \| null |  |  |
| `priorYearS13_7_1UccReduction.byClass[]` | object |  |  |
| `priorYearS13_7_1UccReduction.byClass[].ccaClass` | string |  |  |
| `priorYearS13_7_1UccReduction.byClass[].propertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `priorYearS13_7_1UccReduction.byClass[].uccReduction` | number \| string |  |  |
| `priorYearS13_7_1UccReduction.unattributed` | number \| string |  |  |
| `pyUCCPools` | array |  | Opening UCC pools by CCA class and pool identity. An explicit empty list supplies nil; omitted pools remain unanswered. Supplied openings are reconciled to held history. |
| `pyUCCPools[]` | object |  |  |
| `pyUCCPools[].ccaClass` | array \| boolean \| null \| number \| object \| string |  | CCA class of the prior-year pool, as the class number or its label. It matches the opening pool to this year's Schedule 8 class. The engine normalises it with str(...), so a number is read as its digits; true and false are not classes and are refused rather than read as the class True. |
| `pyUCCPools[].closingUCC` | number \| string |  | Undepreciated capital cost of the class at the end of the previous tax year, which becomes this year's opening UCC. State it in the currency the return is computed in: ITA 261(7)(d)(i) converts closing UCC at the spot rate for the last day of the last Canadian-currency year, so an unconverted balance is refused rather than carried in. |
| `pyUCCPools[].containsPurposeBuiltResidentialRentalUcc` | array \| boolean \| null \| number \| object \| string |  |  |
| `pyUCCPools[].propertyId` | array \| boolean \| null \| number \| object \| string |  |  |
| `reg1100_11RentalIncomeCeiling` | array \| boolean \| null \| number \| object \| string |  | The Reg 1100(11) rental-income ceiling block of the W08 fixed-assets workpaper header, carried at the request root. When a persisted fixed-assets workpaper is present its own block governs and a differing root copy is refused; without one the root value is read. |
| `reg1100_15LeasingIncomeCeiling` | array \| boolean \| null \| number \| object \| string |  | The Reg 1100(15) leasing-income ceiling block of the W08 fixed-assets workpaper header, carried at the request root. When a persisted fixed-assets workpaper is present its own block governs and a differing root copy is refused; without one the root value is read. |
| `reg1100_24SpecifiedEnergyIncomeCeiling` | array \| boolean \| null \| number \| object \| string |  | The Reg 1100(24) specified-energy income ceiling block of the W08 fixed-assets workpaper header, carried at the request root. When a persisted fixed-assets workpaper is present its own block governs and a differing root copy is refused; without one the root value is read. |
| `returnFilingDate` | array \| boolean \| null \| number \| object \| string |  | The date the return for the year was filed, in ISO YYYY-MM-DD form, read at the request root by the dividend-pool and Schedule 97 nodes. The schedule71 and schedule72 blocks carry their own returnFilingDate for the ITA 34.2 designations. |
| `schedule10` | null \| object |  |  |
| `schedule10._user_cited_s_20_1_b_for_cec` | boolean \| null |  |  |
| `schedule10._user_cited_s_85_1_d` | boolean \| null |  |  |
| `schedule10.amount_7_para_14_1_b_income_inclusions` | null \| number \| string |  | Part 2 amount 7, income inclusions previously reported under ITA paragraph 14(1)(b). Send it with amount 8 to prove box 409 by itemisation; leaving both blank is not a zero and blocks unless box 409 is proved another way. |
| `schedule10.amount_8_prior_year_amount_T` | null \| number \| string |  | Part 2 amount 8, the prior year's amount T carried forward. Send it with amount 7 to prove box 409 by itemisation. |
| `schedule10.amount_K_cec_balance` | null \| number \| string |  | Part 1 amount K, the cumulative eligible capital balance carried into Parts 2 and 3. It is a check figure, not an input: the engine computes K as amount F minus amount J and reports an error when the supplied value differs by more than one dollar. |
| `schedule10.line_101_elect_13_38_d_iv` | boolean \| null \| string |  |  |
| `schedule10.line_102_elect_13_38_d_iii` | boolean \| null \| string |  |  |
| `schedule10.line_200_cec_opening_balance` | null \| number \| string |  |  |
| `schedule10.line_222_ecp_acquired_before_2017` | null \| number \| string |  |  |
| `schedule10.line_224_amalgamation_transfer` | null \| number \| string |  |  |
| `schedule10.line_226_other_adjustments_before_2017` | null \| number \| string |  |  |
| `schedule10.line_228_nal_gain_half` | null \| number \| string |  |  |
| `schedule10.line_242_proceeds_disposition_before_2017` | null \| number \| string |  |  |
| `schedule10.line_244_s_80_7_forgiven_debt_reduction` | null \| number \| string |  |  |
| `schedule10.line_246_other_adjustments_dispositions` | null \| number \| string |  |  |
| `schedule10.line_249_cec_for_disposed_business` | null \| number \| string |  |  |
| `schedule10.line_250_current_year_deduction` | null \| number \| string |  |  |
| `schedule10.line_300_cec_closing_balance` | null \| number \| string |  |  |
| `schedule10.line_400_total_prior_cec_deductions_post_jun_1988` | null \| number \| string |  |  |
| `schedule10.line_401_total_s_80_7_reductions` | null \| number \| string |  |  |
| `schedule10.line_402_total_cec_deductions_pre_jul_1988` | null \| number \| string |  |  |
| `schedule10.line_408_negative_balances_into_income_pre_jul_1988` | null \| number \| string |  |  |
| `schedule10.line_409_subtotal` | null \| number \| string |  |  |
| `schedule10.line_410_income_inclusion` | null \| number \| string |  |  |
| `schedule10.line_425_prior_cec_deductions_unrecaptured` | null \| number \| string |  | Box 425, amount W: historical amount determined for variable B in s.13(38)(a). Enter the confirmed amount, including zero when applicable. |
| `schedule10.line_435_deemed_capital_cost` | null \| number \| string |  |  |
| `schedule10.line_440_deemed_para_20_1_a_allowance` | null \| number \| string |  |  |
| `schedule10.line_450_post_2016_acquisitions` | null \| number \| string |  |  |
| `schedule10.line_460_lesser_of_12_and_13` | null \| number \| string |  |  |
| `schedule10.transitionIsActiveAsset` | boolean \| null |  | Whether the amount PP deemed capital gain (ITA s.13(38)(d)(ii)) arose on an asset used in an active business. True counts it in the Schedule 6 active-asset gains; unanswered leaves its character open. |
| `schedule10.transitionIsForeignSource` | boolean \| null |  | Whether the amount PP deemed capital gain is from a foreign source. True counts it in the Schedule 6 foreign gains; unanswered leaves its character open. |
| `schedule10.transitionPropertyId` | null \| string |  | Fixed-asset property ID of the Class 14.1 property that carries the s.13(38)(d)(iv) election when several Class 14.1 properties are added; null when only one is added. |
| `schedule100` | null \| object |  |  |
| `schedule100.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule101` | null \| object |  |  |
| `schedule101.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule101.isWindupSuccessor` | boolean \| null |  | s.88(1) wind-up successor (opening at wind-up effective date). |
| `schedule125` | null \| object |  |  |
| `schedule125.businessNumber` | null \| string |  | 9-digit BN or 15-char RC account (e.g. "123456789RC0001"). |
| `schedule125.isFinancialInstitution` | boolean \| null |  | Bank / credit union / trust — specialised GIFI codes apply. |
| `schedule125.isInsuranceCorp` | boolean \| null |  | RC4088 p.5 insurance carve-out — file F/S as PDF instead. |
| `schedule13` | null \| object |  |  |
| `schedule13.line008TotalOpening` | null \| number \| string |  | Part 1 box 008, the total of the opening column across the capital gains reserve rows. The engine computes it from the rows, so send it only to reconcile an imported figure; a difference over one dollar is reported as an error. |
| `schedule13.line009TotalAmalgamationTransfer` | null \| number \| string |  | Part 1 box 009, the total of the amalgamation or wind-up transfer column across the capital gains reserve rows. Box 008 plus box 009 is what the form footer routes to Schedule 6 line 880. |
| `schedule13.line010TotalClosing` | null \| number \| string |  | Part 1 box 010, the total of the closing column across the capital gains reserve rows, which the form footer routes to Schedule 6 line 885. |
| `schedule13.line270TotalOpening` | null \| number \| string |  | Part 2 box 270, the total opening balance across the six reserve types. The engine sums it from the per-reserve entries, so send it only to reconcile an imported total. |
| `schedule13.line275TotalAmalgamationTransfer` | null \| number \| string |  | Part 2 box 275, the total of the amalgamation or wind-up transfer column across the six reserve types. A difference over one dollar from the computed sum is reported as an error. |
| `schedule13.line280TotalClosing` | null \| number \| string |  | Part 2 box 280, the total closing balance across the six reserve types. |
| `schedule13.part1CapitalGainsReserves` | array \| null |  | Part 1 capital gains reserves (per-row). Empty array is valid for a corp with no capital-gains-reserve continuity. |
| `schedule13.part1CapitalGainsReserves[]` | object |  |  |
| `schedule13.part1CapitalGainsReserves[].amalgamationTransfer` | null \| number \| string |  | Box 003 — Transfer on an amalgamation (ITA s.87(2)(g)/(m)) or the wind-up of a subsidiary (s.88(1)(e.1)). Normally null/zero unless the corp had a successor event in the tax year. |
| `schedule13.part1CapitalGainsReserves[].closingBalance` | null \| number \| string |  | Box 004 — Balance at the end of the year. The fresh CY-end reserve the practitioner claims; tied to S6 per-disposition reserve calc. |
| `schedule13.part1CapitalGainsReserves[].description` | null \| string |  | Box 001 — Description of property. Required when the row has any non-zero amount in boxes 002/003/004. |
| `schedule13.part1CapitalGainsReserves[].dispositionDate` | null \| string |  | ISO date (YYYY-MM-DD) of the sale copied from the originating Schedule 6 disposition. With the property identifier it distinguishes separate sales of one property or under a shared reconciliation reference; a date before the taxation year marks a reserve brought back from an earlier sale (s.40(1)(a)). A ten-year reserve also uses it for the selected provision's commencement rule (ss.40(1.1) to (1.4)). Preserved in reserve continuity. |
| `schedule13.part1CapitalGainsReserves[].dispositionReconciliationId` | null \| string |  | Reconciliation reference copied from Schedule 6, including a W08 Row ID that may cover several sales. Property identifier and disposition date distinguish those sales. Preserved as historical sale evidence through reserve continuity (s.40(1)(a), s.41(2)). |
| `schedule13.part1CapitalGainsReserves[].extendedTenYearReserve` | boolean \| null \| string |  | ITA 40(1.1) to (1.4) — "Yes" when the disposition is one for which s.40(1)(a)(iii) is read with "1/10" and "9": to the taxpayer's child of family farm/fishing property or a QSBC share (1.1), a qualifying intergenerational transfer under s.84.1(2.31)/(2.32) (1.2), a qualifying business transfer to an employee ownership trust (1.3), or a qualifying cooperative conversion (1.4). Read through norm_yes_no; blank is UNANSWERED and blocks, never an implicit "No". |
| `schedule13.part1CapitalGainsReserves[].extendedTenYearReserveEligibilityConfirmed` | boolean \| null \| string |  |  |
| `schedule13.part1CapitalGainsReserves[].extendedTenYearReserveProvision` | null \| string |  |  |
| `schedule13.part1CapitalGainsReserves[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule13.part1CapitalGainsReserves[].isActiveAsset` | boolean \| null \| string |  | Non-printed s.125(7) character of the property whose gain carries the reserve. Blank is unanswered and blocks a non-zero reserve swing. |
| `schedule13.part1CapitalGainsReserves[].isForeignSource` | boolean \| null \| string |  | Non-printed s.129(4) source character of that same property. |
| `schedule13.part1CapitalGainsReserves[].isListedPersonalProperty` | boolean \| null \| string |  | Non-printed ITA 54 listed-personal-property character of the property whose gain carries the reserve. A Yes keeps the reserve inside the s.41 computation (Schedule 6 amount F) instead of lines 880 and 885. Fixed at the sale and carried forward. Blank is unanswered: it blocks a non-zero reserve swing when the year has listed-personal-property activity and is otherwise disclosed as other property. |
| `schedule13.part1CapitalGainsReserves[].openingBalance` | null \| number \| string |  | Box 002 — Balance at the beginning of the year. Must equal the prior-year closing balance per the continuity-of-reserves semantics; the carryforward function auto-rolls PY closing → CY opening. |
| `schedule13.part1CapitalGainsReserves[].originalGain` | null \| number \| string |  | Statutory gain base for clauses (C)/(D): ordinarily the ITA 40(1)(a)(i) gain. On an inherited box-003 reserve, ITA 87(2)(m)(ii) instead deems the predecessor's claimed reserve to be that amount. |
| `schedule13.part1CapitalGainsReserves[].precedingTaxationYearsEndingAfterDisposition` | null \| number \| string |  | OPTIONAL override for N itself — "the number of preceding taxation years of the taxpayer ending after the disposition of the property". Normally derived as (filing year − yearOfDisposition), which is exact while the corporation's taxation years map one-to-one onto year labels. A short year (or two year-ends in one calendar year) makes the derived count too low and the cap too generous, so the practitioner may state the statutory count and it governs. Exception: a proven predecessor reserve in box 003 uses N = 1 under ITA 87(2)(m)(i) (also applied to a qualifying wind-up by 88(1)(e.2)); a… |
| `schedule13.part1CapitalGainsReserves[].proceedsNotDueAfterYearEnd` | null \| number \| string |  | ITA 40(1)(a)(iii)(C) — "such of the proceeds of disposition of the property that are payable to the taxpayer after the end of the year". Measured at EACH year end, so it is re-answered every year and the carryforward resets it. |
| `schedule13.part1CapitalGainsReserves[].proceedsOfDisposition` | null \| number \| string |  | ITA 40(1)(a)(iii)(C) — the property's TOTAL proceeds of disposition, the denominator of the clause (C) portion. Fixed at the sale. |
| `schedule13.part1CapitalGainsReserves[].propertyId` | null \| string |  | Stable property identifier shared with the originating Schedule 6 disposition. Together with the disposition date it distinguishes separate sales. Preserved in reserve continuity; descriptions and amounts are not identity (s.40(1)(a)). |
| `schedule13.part1CapitalGainsReserves[].purchaserControlRelationship` | boolean \| null \| string |  | ITA 40(2)(a)(ii) — the purchaser is a corporation that, immediately after the sale, (A) was controlled by the taxpayer, (B) was controlled by the person or group controlling the taxpayer, or (C) controlled the taxpayer. Fixed at the sale; carried forward. |
| `schedule13.part1CapitalGainsReserves[].purchaserMajorityInterestPartnership` | boolean \| null \| string |  | ITA 40(2)(a)(iii) — the purchaser is a partnership in which the taxpayer was, immediately after the sale, a majority-interest partner. Fixed at the sale; carried forward. |
| `schedule13.part1CapitalGainsReserves[].taxpayerNonResident` | boolean \| null \| string |  | ITA 40(2)(a)(i) — the taxpayer, at the end of the year or at any time in the immediately following year, was not resident in Canada. |
| `schedule13.part1CapitalGainsReserves[].taxpayerTaxExempt` | boolean \| null \| string |  | ITA 40(2)(a)(i) — ... or was exempt from tax under any provision of this Part. |
| `schedule13.part1CapitalGainsReserves[].yearOfDisposition` | null \| number \| string |  | ITA 40(1)(a)(iii)(D) — the taxation year in which the property was disposed of, as the same integer year label the engine files under. N (the preceding taxation years ending after the disposition) is derived from it; nil in the year of disposition. |
| `schedule13.part2DoubtfulDebts` | object |  | Box 110/115/120 — Reserve for doubtful debts (ITA s.20(1)(l)). |
| `schedule13.part2DoubtfulDebts.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2DoubtfulDebts.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2DoubtfulDebts.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2DoubtfulDebts.statutoryBasis` | null \| string |  |  |
| `schedule13.part2DoubtfulDebts.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule13.part2OtherTaxReserves` | object |  | Box 230/235/240 — Other tax reserves (T4012 catch-all: s.20(1)(o) special shipping surveys, s.20(1)(oo)/(pp) salary-deferral amounts, s.32(1) unearned non-life-insurance commissions, etc.). |
| `schedule13.part2OtherTaxReserves.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2OtherTaxReserves.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2OtherTaxReserves.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2OtherTaxReserves.statutoryBasis` | null \| string |  |  |
| `schedule13.part2OtherTaxReserves.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule13.part2PrepaidRent` | object |  | Box 150/155/160 — Reserve for prepaid rent (ITA s.20(1)(m)(iii) applied to amounts forced-included under s.12(1)(a) for advance rent or other use-of-property payments). |
| `schedule13.part2PrepaidRent.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2PrepaidRent.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2PrepaidRent.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2PrepaidRent.statutoryBasis` | null \| string |  |  |
| `schedule13.part2PrepaidRent.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule13.part2ReturnableContainers` | object |  | Box 190/195/200 — Reserve for returnable containers (ITA s.20(1)(m)(iv) for non-bottle deposits; bottle deposits fall outside (m)(iv) by statutory carve-out and are reported under s.20(1)(m.2) per CRA administrative practice). |
| `schedule13.part2ReturnableContainers.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2ReturnableContainers.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2ReturnableContainers.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2ReturnableContainers.statutoryBasis` | null \| string |  |  |
| `schedule13.part2ReturnableContainers.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule13.part2UndeliveredGoodsAndServices` | object |  | Box 130/135/140 — Reserve for undelivered goods and services not rendered (ITA s.20(1)(m)). |
| `schedule13.part2UndeliveredGoodsAndServices.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2UndeliveredGoodsAndServices.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2UndeliveredGoodsAndServices.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2UndeliveredGoodsAndServices.statutoryBasis` | null \| string |  |  |
| `schedule13.part2UndeliveredGoodsAndServices.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule13.part2UnpaidAmounts` | object |  | Box 210/215/220 — Reserve for unpaid amounts (ITA s.20(1)(n) instalment-sale reserve; NOT the s.78 unpaid-expense add-back). |
| `schedule13.part2UnpaidAmounts.amalgamationTransfer` | null \| number \| string |  |  |
| `schedule13.part2UnpaidAmounts.closingBalance` | null \| number \| string |  |  |
| `schedule13.part2UnpaidAmounts.openingBalance` | null \| number \| string |  |  |
| `schedule13.part2UnpaidAmounts.statutoryBasis` | null \| string |  |  |
| `schedule13.part2UnpaidAmounts.statutoryProvision` | null \| string |  | Non-printed support for a manually entered reserve. The catchall row cannot be linked to a generic workpaper because its statutory tests vary by provision; absent values remain unanswered and block a non-zero row. |
| `schedule130` | null \| object |  | Schedule 130 (EIFEL) practitioner-entered blob — feeds the schedule130 batch node, whose result posts S1 lines 251/252. |
| `schedule18` | null \| object |  | Schedule 18 Federal and Provincial/Territorial Capital Gains Refund input object. Its corporationType identifies the investment or mutual-fund corporation category used by refund and related status calculations. Omission supplies no Schedule 18 category or refund inputs; other answered return facts may still determine the applicable status. |
| `schedule18.corporationType` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule18.prescribedLsvcc` | boolean \| null |  | ITA 131(8): prescribed LSVCC status throughout the current tax year. Reconciled to prescribedLsvccHistory; Yes requires a first date no later than the year start. No here does not negate earlier prescribed status under s.131(11). Null is unanswered. |
| `schedule20` | null \| object |  |  |
| `schedule23` | null \| object |  | Schedule 23 associated-CCPC business-limit agreement input object, including corporation rows and any third-corporation election details. It supports allocation to the filing corporation and reconciliation of association facts. Omission supplies no agreement; an affirmative jacket box 160 without a computed agreement leaves the SBD allocation unresolved. |
| `schedule23.calendarYear` | null \| number \| string |  | Box 050: calendar year to which the business-limit allocation agreement applies. |
| `schedule23.isAmendedAgreement` | boolean \| null |  | Box 075: whether this agreement replaces an agreement previously filed for the same calendar year by a listed associated corporation. |
| `schedule23.rows` | array \| null |  | Associated corporations and their business-limit allocations, in the order entered on Schedule 23. An imported return's own allocation table can seed this roster while every row is still blank; a preceding year's table seeds the roster and the association codes only, because ITA 125(3) requires a fresh agreement each calendar year. |
| `schedule23.rows[]` | object |  |  |
| `schedule23.rows[].associationCode` | null \| number \| string |  | Column 3, box 300: association code from the Schedule 23 instructions. Codes 2 and 5 depend on a third corporation having filed the Schedule 28 election. |
| `schedule23.rows[].businessLimitAllocated` | null \| number \| string |  | Column 6, box 400: business limit allocated to this corporation, calculated as column 4 multiplied by the percentage in column 5. The total allocation cannot exceed $500,000. |
| `schedule23.rows[].businessLimitBeforeAllocation` | null \| number \| string |  | Column 4: this corporation's business limit for the year before allocation. Enter zero for association codes 2, 3 and 4. |
| `schedule23.rows[].businessNumber` | null \| string |  | Column 2, box 200: business number of the associated corporation. Enter NR if the corporation is not registered. |
| `schedule23.rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule23.rows[].name` | null \| string |  | Column 1, box 100: legal name of the corporation in the associated group, including a corporation deemed associated under s.256(2). |
| `schedule23.rows[].nativeGroupMemberId` | null \| string |  |  |
| `schedule23.rows[].percentageOfBusinessLimit` | null \| number \| string |  | Column 5, box 350: percentage of the business limit allocated to a corporation with association code 1. The column total cannot exceed 100%. |
| `schedule23.rows[].thirdCorporationBusinessNumber` | null \| string |  | Filemark evidence for a code-5 row using the automatic s.256(2)(b)(i) branch: the code-3 non-CCPC third corporation that is common to the filer and this row. Not a printed Schedule 23 column. |
| `schedule23.thirdCorporationSchedule28Elections` | array \| null |  | ITA 256(2)(b)(ii) evidence for association codes 2/5. Optional; an absent key is not an empty answer, and the S23 code-2/5 gate keeps blocking until evidence is entered. |
| `schedule23.thirdCorporationSchedule28Elections[]` | object |  |  |
| `schedule23.thirdCorporationSchedule28Elections[].businessNumber` | null \| string |  | The ELECTING third corporation's business number — nine-digit root or the full 15-character program account. "NR" is not accepted: it cannot identify which corporation elected. |
| `schedule23.thirdCorporationSchedule28Elections[].coveredCorporationBusinessNumbers` | array |  | Business numbers of the corporations enumerated on that filed Schedule 28. At least two distinct registered BN roots are required; the electing third corporation itself is not one of them. An empty list is unanswered and contributes no evidence. |
| `schedule23.thirdCorporationSchedule28Elections[].coveredCorporationBusinessNumbers[]` | null \| string |  | One entry in the stated collection. |
| `schedule23.thirdCorporationSchedule28Elections[].electionTaxYearEnd` | null \| string |  | The taxation year end the third corporation's Schedule 28 election was filed for (ISO YYYY-MM-DD). ITA 256(2)(b)(ii) requires the election to be made "in its taxation year that includes the particular time", so this is bound to the filer's period by the backend. |
| `schedule23.thirdCorporationSchedule28Elections[].electionTaxYearStart` | null \| string |  | Start of the third corporation's election taxation year (ISO YYYY-MM-DD). Together with the end, this proves actual period overlap. |
| `schedule23.thirdCorporationSchedule28Elections[].filedSchedule28Confirmed` | boolean \| null |  | Explicit confirmation that the election was FILED. null = unanswered. Anything other than true contributes no evidence — never a silent affirmative. |
| `schedule24` | null \| object |  | Schedule 24 First-Time Filer after Incorporation, Amalgamation, or Winding-up of a Subsidiary input object. Supply the operation code and applicable predecessor or subsidiary rows. Omission supplies no predecessor event roster or operation-code status; the jacket and authenticated continuity still determine which first-year and reorganization evidence is required. |
| `schedule24.filingTriggers` | array \| null |  | The list of first-filing events covered by Schedule 24: incorporation, amalgamation or the winding-up of a subsidiary into its parent under section 88. Send a list even for one event; a bare string is refused. |
| `schedule24.filingTriggers[]` | string |  | One entry in the stated collection. |
| `schedule24.operationCode` | null \| string |  | Part 1, box 100: operation type for a corporation filing for the first time after incorporation or amalgamation. |
| `schedule24.predecessors` | array \| null |  | Part 2: predecessor corporations for the first year of filing after amalgamation. |
| `schedule24.predecessors[]` | object |  |  |
| `schedule24.predecessors[].businessNumber` | null \| string |  | Box 300 — Business number (9 digits + 2 uppercase letters + 4 digits, e.g. "123456789RC0001"), or "NR" if the predecessor was never CRA-registered (typically a foreign-amalgamation predecessor). |
| `schedule24.predecessors[].id` | null \| string |  | Stable row identity for retaining the current predecessor row through edits and row reordering. |
| `schedule24.predecessors[].name` | null \| string |  | Box 200 — Name of predecessor corporation. |
| `schedule24.subsidiaries` | array \| null |  | Part 3: subsidiaries wound up into the parent under section 88, with their business numbers and commencement and completion dates. |
| `schedule24.subsidiaries[]` | object |  |  |
| `schedule24.subsidiaries[].assetDistributionCompletedInThatYear` | array \| boolean \| null \| number \| object \| string |  | Non-printed tri-state. Reviewed affirmation that the winding-up distribution was completed in the taxation year ending on assetsDistributedTaxationYearEnd. Only true lets the matching filed subsidiary period authenticate a predecessor closing or RDTOH transfer. |
| `schedule24.subsidiaries[].assetsDistributedTaxationYearEnd` | null \| string |  | Non-printed. End date of the subsidiary taxation year in which its assets were distributed to the parent on the winding-up (ISO YYYY-MM-DD). ITA s.88(1)(e.2)(v) substitutes that year, and box 700 is only the date of wind-up, so this fact is collected separately. Null stays unanswered. |
| `schedule24.subsidiaries[].businessNumber` | null \| string |  | Box 500 — Business number (same format as box 300, or "NR"). |
| `schedule24.subsidiaries[].commencementDate` | null \| string |  | Box 600 — Commencement date of wind-up (ISO YYYY-MM-DD). Typically the board resolution / shareholder approval date. |
| `schedule24.subsidiaries[].id` | null \| string |  | Stable row identity for retaining the current subsidiary row through edits and row reordering. |
| `schedule24.subsidiaries[].name` | null \| string |  | Box 400 — Name of subsidiary corporation. |
| `schedule24.subsidiaries[].qualifiesUnderSection88_1` | array \| boolean \| null \| number \| object \| string |  | Non-printed tri-state. Schedule 24 proves the event roster but not the taxable-Canadian-corporation, 90%-of-each-class, and arm's-length-minority conditions in the ITA s.88(1) chapeau. Pool continuity remains blocked until this reviewed conclusion is answered. |
| `schedule24.subsidiaries[].windUpDate` | null \| string |  | Box 700 — Date of wind-up (ISO YYYY-MM-DD). This is not the date the subsidiary's assets were distributed. Must be ≥ commencementDate per the validator's date-order gate. |
| `schedule25` | null \| object |  | Schedule 25 Investment in Foreign Affiliates input object, including hasForeignAffiliates and affiliateRows. It supplies the affiliate roster used by foreign-affiliate analysis and related schedules. Omission adds no input roster; a computed Schedule 25 may supply one, otherwise affiliate presence remains unknown rather than an answered no. |
| `schedule25.affiliateRows` | array \| null |  | Foreign affiliates reported on Schedule 25, with each affiliate's name, equity percentage held and controlled-or-other status. |
| `schedule25.affiliateRows[]` | object |  |  |
| `schedule25.affiliateRows[].affiliateId` | array \| boolean \| null \| number \| object \| string |  | Optional caller-supplied stable identifier for this affiliate row, the key of the Schedule 1 foreign accrual property income reconciliation; when absent the key is the normalized affiliate name. A row stating id or \_rowKey is refused, naming affiliateId. |
| `schedule25.affiliateRows[].affiliateName` | null \| string |  | Box 100: name of the foreign affiliate. |
| `schedule25.affiliateRows[].controlStatus` | null \| number \| string |  | Box 300: foreign-affiliate status, with 1 for controlled and 2 for other. |
| `schedule25.affiliateRows[].equityPercentHeld` | null \| number \| string |  | Box 200: equity percentage held, stated in percentage units. The form does not identify the statutory ownership measure; identify that measure in the supporting ownership workpaper. |
| `schedule25.affiliateRows[].relatedPersonsAggregateEquityPercent` | null \| number \| string |  | Practitioner-stated total of the equity percentages in this affiliate held by the corporation plus each related person — limb (b) of the s.95(1) "foreign affiliate" definition, which requires that total to be not less than 10%. Not a printed CRA column. Only consulted when `equityPercentHeld` is at least 1% and below 10%, the band where classification turns entirely on related persons; at 10% or more the corporation's own holding satisfies limb (b) by itself. In that band an unanswered or below-10% total draws a review warning, never a block. |
| `schedule25.hasForeignAffiliates` | boolean \| null |  | Practitioner assertion that the corporation owns shares in one or more foreign affiliates per s.95(1). The taxpayer's own equity percentage must independently be at least 1%, and the taxpayer-plus-related-person total must be at least 10%; the second test cannot cure failure of the first. |
| `schedule25.isNonResidentOwnedInvestmentCorp` | boolean \| null |  | Practitioner assertion of NROIC status under s.133(8). The terminal rule prevents status for a taxation year beginning in 2003 or later; historical 1998-2002 qualification remains fact-dependent and is not auto-rejected. |
| `schedule25.section212_3ForeignAffiliateInvestmentMade` | boolean |  | Whether the corporation made an investment in a foreign affiliate, one of the two charging facts in ITA s.212.3(1). Answer it true or false whenever an affiliate roster is open: absence cannot default to No, so the request is rejected rather than computed. |
| `schedule25.section212_3NonResidentControlAtInvestment` | boolean |  | ITA 212.3(1)(b): was the investing Canadian corporation, or the relevant other Canadian corporation, under non-resident control? |
| `schedule27` | object |  | The Schedule 27 manufacturing and processing input blob. On the small business deduction target only its presence is read: a non-empty Schedule 27 makes the engine also compute the hypothetical non-associated deduction that Schedule 27 Part 9 needs. |
| `schedule27.amount4BTimberLimitsAndCuttingRights` | null \| number \| string |  | Amount 4B — timber limits and cutting rights. |
| `schedule27.amount4CImmovableWoodAssetsClass15` | null \| number \| string |  | Amount 4C — immovable wood assets (Class 15). |
| `schedule27.amount4DIndustrialMineralMines` | null \| number \| string |  | Amount 4D — industrial mineral mines. |
| `schedule28` | null \| object |  | Schedule 28 Election not to be Associated Through a Third Corporation input object, including third-corporation facts, otherCorps and the election answers. It supplies election evidence and reconciles the association roster. Omission supplies no Schedule 28 election or roster; another valid source must establish any claimed election. |
| `schedule28.amendedElection` | boolean \| null |  | Box 020: whether this is an amended Schedule 28 election. |
| `schedule28.dateFiled` | null \| string |  | Internal Filemark filing-date metadata (ISO YYYY-MM-DD). The submitted box 010 always remains blank because the official form says not to use that area. The validator checks this internal value when populated. |
| `schedule28.otherCorps` | array \| null |  | Corporations that would otherwise be deemed associated with each other through the third corporation. The form permits additional schedules when more space is needed. |
| `schedule28.otherCorps[]` | object |  |  |
| `schedule28.otherCorps[].businessNumber` | null \| string |  | Box 200: business number of the listed corporation. Enter NR if it is not registered. |
| `schedule28.otherCorps[].name` | null \| string |  | Box 100: name of a corporation that would otherwise be deemed associated through the third corporation. |
| `schedule28.othersAssociatedWithThirdCorp` | boolean \| null |  | Whether the two other corporations were associated with the third corporation. Boolean is the canonical form. An absent answer leaves the ITA s.256(2)(b)(ii) election conclusion unanswered and the schedule fails closed. |
| `schedule28.othersNotOtherwiseAssociated` | boolean \| null |  | Whether the two other corporations would not otherwise be associated with each other. Boolean is the canonical form. An absent answer leaves the ITA s.256(2)(b)(ii) election conclusion unanswered. |
| `schedule28.supplementaryPagesAttached` | boolean \| null |  | The printed grid holds 15 rows and the form says "If you need more space, attach additional schedules." A corporation in row 16 or beyond is covered by the election only if that attachment was filed. s.256(2) deems non-association only for corporations the third corporation "elects in prescribed form" to cover, and Schedule 23 consumes that election into the business limit. Null is unanswered and holds; it is only asked when the grid overflows. |
| `schedule28.thirdCorpBn` | null \| string |  | Box 040: business number of the third corporation making the election. |
| `schedule28.thirdCorpIsCcpc` | boolean \| null |  | Whether the third corporation is a Canadian-controlled private corporation. Schedule 28 reads this fact rather than the request-root corporation type, so setting the root fact alone does not clear the unanswered-CCPC gate. |
| `schedule28.thirdCorpName` | null \| string |  | Box 030: name of the Canadian-controlled private corporation making the election as the third corporation. |
| `schedule28.thirdCorpTaxYearEnd` | null \| string |  | Box 050: taxation year-end of the third corporation. A separate election is filed for each applicable taxation year. |
| `schedule29` | null \| object |  |  |
| `schedule3` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule31` | null \| object |  | Schedule 31 (Investment Tax Credit, s.127) practitioner blob. A result is emitted only when the blob is present, so an unopened form never blocks export. |
| `schedule351` | null \| object |  | Programme certificate and eligibility evidence. Omit or send null when unopened; explicit claim=false discloses a nil. |
| `schedule351.actualCreditReceipts` | array |  | Actual provincial-credit receipt review. Preserve original receipt history; current entitlement is not a receipt. Unknown review holds filing even when a current claim is declined. |
| `schedule351.actualCreditReceipts[]` | object |  |  |
| `schedule351.actualCreditReceipts[].amount` | null \| number \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].evidenceRef` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].expenseReductionApplied` | boolean \| null |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].id` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].originTaxYearEnd` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].partnershipBusinessNumber` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].partnershipIncomeReported` | boolean \| null |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].propertyId` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].receiptKind` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].receivedDate` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].sourceCurrency` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].treatment` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].treatmentEvidenceRef` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].treatmentTaxYearEnd` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].workpaperId` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.actualCreditReceipts[].workpaperRowKey` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.assistancePostingConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.assistanceReconciliationReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[]` | object |  | Retained provincial credit certificates record input. |
| `schedule351.certificates[].applicationDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].certificateId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].certificateKind` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].certificateNumber` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].certifiedAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].certifyingBody` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[]` | object |  | Retained provincial credit claim history record input. |
| `schedule351.certificates[].claimHistory[].assessedAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].claimId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].claimedAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].filingReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].fiscalEnd` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].fiscalStart` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].sourceCurrency` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].claimHistory[].supersedesClaimId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].coveredFrom` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].coveredTo` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].eligibilityCertificateId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].estimatedCreditAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].events` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].events[]` | object |  | Retained provincial credit events record input. |
| `schedule351.certificates[].events[].eventDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].events[].eventId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].events[].eventKind` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].events[].evidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].evidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].evidenceSha256` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].issueDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].program` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].projects` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].projects[]` | object |  | Retained provincial credit projects record input. |
| `schedule351.certificates[].projects[].estimatedCreditAmount` | null \| number \| string |  | Issuer estimate for the identified project. Retain its original currency and certificate evidence; it is separate from certified amounts and calculated entitlement. |
| `schedule351.certificates[].projects[].projectId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].projects[].projectKind` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].projects[].projectName` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].recipientBusinessNumber` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].revision` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].sourceCurrency` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].status` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].supersedesCertificateId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[]` | object |  | Retained provincial credit taxation periods record input. |
| `schedule351.certificates[].taxationPeriods[].allocationEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].certifiedAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].estimatedCreditAmount` | null \| number \| string |  | Issuer estimate for this exact certificate taxation period. Retain its original currency and evidence; it is separate from certified amounts and does not establish or cap the elected credit. |
| `schedule351.certificates[].taxationPeriods[].fiscalEnd` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].fiscalStart` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].projectAmounts` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[]` | object |  | Retained provincial credit project amounts record input. |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[].certifiedAmount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[].estimatedCreditAmount` | null \| number \| string |  | Issuer estimate allocated to the identified project in this certificate taxation period. Retain its original currency and evidence; it is separate from certified allocations and calculated entitlement. |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[].projectId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[]` | object |  | Retained provincial credit transfers record input. |
| `schedule351.certificates[].transfers[].approvalEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[].legalBasis` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[].predecessorBusinessNumber` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[].successorBusinessNumber` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[].transferDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.certificates[].transfers[].transferId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.claim` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis` | null \| object |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.amountsInReportingCurrencyConfirmed` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[]` | object |  | Retained provincial credit conversions record input. |
| `schedule351.currencyBasis.conversions[].aroseDate` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].denominatorRate` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].evidenceReference` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].ministerApprovalRef` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].numeratorRate` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].originalAmount` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].path` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].rateDate` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].sourceCurrency` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].sourceRecordId` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.conversions[].spotRateSource` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.evidenceReference` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.currencyBasis.historicalConversions` | array |  | Retained currency conversions from prior filed claim amounts. |
| `schedule351.currencyBasis.historicalConversions[]` | object |  | One prior filed currency conversion retained for claim continuity. |
| `schedule351.currencyBasis.historicalConversions[].conversion` | object |  | Prior filed currency lineage conversion. |
| `schedule351.currencyBasis.historicalConversions[].conversion.aroseDate` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion aroseDate. |
| `schedule351.currencyBasis.historicalConversions[].conversion.denominatorRate` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion denominatorRate. |
| `schedule351.currencyBasis.historicalConversions[].conversion.evidenceReference` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion evidenceReference. |
| `schedule351.currencyBasis.historicalConversions[].conversion.ministerApprovalRef` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion ministerApprovalRef. |
| `schedule351.currencyBasis.historicalConversions[].conversion.numeratorRate` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion numeratorRate. |
| `schedule351.currencyBasis.historicalConversions[].conversion.originalAmount` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion originalAmount. |
| `schedule351.currencyBasis.historicalConversions[].conversion.path` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion path. |
| `schedule351.currencyBasis.historicalConversions[].conversion.rateDate` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion rateDate. |
| `schedule351.currencyBasis.historicalConversions[].conversion.sourceCurrency` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion sourceCurrency. |
| `schedule351.currencyBasis.historicalConversions[].conversion.sourceRecordId` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion sourceRecordId. |
| `schedule351.currencyBasis.historicalConversions[].conversion.spotRateSource` | array \| boolean \| null \| number \| object \| string |  | Original retained amount conversion spotRateSource. |
| `schedule351.currencyBasis.historicalConversions[].filingReference` | array \| boolean \| null \| number \| object \| string |  | Prior filed currency lineage filingReference. |
| `schedule351.currencyBasis.historicalConversions[].reportingCurrency` | array \| boolean \| null \| number \| object \| string |  | Prior filed currency lineage reportingCurrency. |
| `schedule351.currencyBasis.reportingCurrency` | array \| boolean \| null \| number \| object \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.eligibilityEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.filingDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.filingEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.formRevision` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.priorCreditReceipts` | array |  | Actual provincial-credit receipt review. Preserve original receipt history; current entitlement is not a receipt. Unknown review holds filing even when a current claim is declined. |
| `schedule351.priorCreditReceipts[]` | object |  |  |
| `schedule351.priorCreditReceipts[].amount` | null \| number \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].evidenceRef` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].expenseReductionApplied` | boolean \| null |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].id` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].originTaxYearEnd` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].partnershipBusinessNumber` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].partnershipIncomeReported` | boolean \| null |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].propertyId` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].receiptKind` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].receivedDate` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].sourceCurrency` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].treatment` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].treatmentEvidenceRef` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].treatmentTaxYearEnd` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].workpaperId` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.priorCreditReceipts[].workpaperRowKey` | null \| string |  | Retained actual-credit receipt evidence linked by programme receipt ID to one government-assistance workpaper row. Amount and currency refer to the original receipt; conversion uses its actual received date. The workpaper owns any income or property-cost posting. |
| `schedule351.projects` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[]` | object |  | Retained provincial credit projects record input. |
| `schedule351.projects[].approvedPlanEffectiveDate` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].approvedPlanVersion` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].assistanceExclusionsConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].capitalMilestones` | array |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[]` | object |  |  |
| `schedule351.projects[].capitalMilestones[].actualCapitalCost` | null \| number \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[].basis` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[].evidenceReference` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[].milestoneId` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[].months` | null \| number \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].capitalMilestones[].plannedCapitalCost` | null \| number \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].certificateId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].certificateReconciliationReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].completePartAApplicationDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].completePriorClaimsConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].completionDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].drivingDistanceKm` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].eligibilityCertificateId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].eligibleAreaPeConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].eligibleAreaSalary` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].eligibleRemuneration` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].governmentAssistance` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].governmentRevenueShare` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].issuerComponentDescription` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].issuerComponentEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[]` | object |  | Retained provincial credit labour record input. |
| `schedule351.projects[].labour[].allocationEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].animationSalary` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].eligibilityConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].eligibleSalary` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].employeeId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].paidDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].labour[].sourceRecordId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketingHistoryEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[]` | object |  | Retained provincial credit marketing record input. |
| `schedule351.projects[].marketing[].amount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[].eligibilityConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[].foodBeverageEntertainment` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[].incurredDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[].paidDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].marketing[].sourceRecordId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].milestonesConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].ministerApprovedPlanConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].naics2012EligibilityConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].naics2012PrincipalActivity` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].nonDuplicatedOutlaysConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims[]` | object |  | Retained provincial credit other effective claims record input. |
| `schedule351.projects[].otherEffectiveClaims[].amount` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims[].claimId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims[].evidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims[].fiscalEnd` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].otherEffectiveClaims[].fiscalStart` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].partAApprovalDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].partBApplicationDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].priorMarketingClaimed` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].productionStart` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].projectId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties` | array |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[]` | object |  | Retained provincial credit properties record input. |
| `schedule351.projects[].properties[].acquisitionAndUseMatchPlanConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].assistanceEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].availableForUse` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].availableForUseWithoutExcludedDeemingConfirmed` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].capitalAssistanceWorkpaperId` | null \| string |  | Existing government-assistance workpaper that owns this property's CITC capital-cost treatment. |
| `schedule351.projects[].properties[].capitalAssistanceWorkpaperRowKey` | null \| string |  | Stable row key of the property-specific CITC assistance record. Missing or conflicting links hold Schedule 8. |
| `schedule351.projects[].properties[].capitalCost` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].certifiedCreditAllocation` | null \| number \| string |  | Issuer-supported CITC allocation to this property when the project maximum binds across several assets. Missing allocation holds; no proportional allocation is inferred. |
| `schedule351.projects[].properties[].creditAssistanceEntitledDate` | null \| string |  | Evidenced date of entitlement to the property-specific CITC assistance. The certificate issue date is not substituted. |
| `schedule351.projects[].properties[].creditAssistanceEvidenceReference` | null \| string |  | Retained issuer allocation and assistance entitlement evidence for this source property. |
| `schedule351.projects[].properties[].eligibilityConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].federalAssistanceEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].federalAssistanceReconciledConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].governmentAssistance` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].leaseQualificationEvidenceReference` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].leaseRole` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].nsUseFraction` | null \| number \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].purchaseDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].qualification` | null \| object |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.acquiredForIncomePurpose` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.acquisitionDate` | array \| boolean \| null \| number \| object \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.ccaClass` | array \| boolean \| null \| number \| object \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.hasQualifyingUse` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.isBuilding` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.isLand` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.isNewProperty` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.isNotQualifiedResourceProperty` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualification.reg4600PrescribedPropertyCategory` | array \| boolean \| null \| number \| object \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].qualificationBranch` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].qualificationEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].sourceAssetId` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].properties[].spaceActivityNaics2012` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].spaceActivityUseConfirmed` | boolean \| null |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].properties[].spaceQualificationEvidenceDate` | null \| string |  | Retained source-property or approved project evidence (NS ITA49A; Reg137/2016 ss.2-9; federal127(9) and Regulation4600). Missing qualification remains unanswered; milestone costs are gross capital costs. |
| `schedule351.projects[].remunerationEligibilityConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].remunerationEvidenceReference` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].remunerationPaidDate` | null \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.projects[].totalProductionOutlays` | null \| number \| string |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule351.receiptsReviewed` | boolean \| null |  | Actual provincial-credit receipt review. Preserve original receipt history; current entitlement is not a receipt. Unknown review holds filing even when a current claim is declined. |
| `schedule351.statutoryConditionsConfirmed` | boolean \| null |  | Retained provincial programme evidence; missing facts remain unanswered. Monetary source values may be exact decimal text. |
| `schedule38` | null \| object |  | Schedule 38 Part VI Tax on Capital of Financial Institutions input object. Its capital and institution facts support the federal calculation, T2 line 720 and provincial financial-institution capital-tax inputs. Omission supplies no Schedule 38 prepass or fallback identity facts; applicable return triggers still require the relevant facts. |
| `schedule38.hasAcquisitionOfControlThisYear` | boolean \| null \| number \| string |  | s.190.1(6) AoC restriction on unused-credit carryover (s.111(5) same-or-similar-business test, NOT s.111(5.1)). |
| `schedule38.hasFunctionalCurrencyElectionS261` | boolean \| null \| number \| string |  | Functional-currency election under s.261 — translate the $1B fixed amount under s.261(5)(b) at the first-day relevant spot rate. |
| `schedule38.isAuthorizedForeignBank` | boolean \| null \| number \| string |  | Authorized foreign bank — s.190.13(d) 10%-of-RWA capital path. |
| `schedule38.isBank` | boolean \| null |  | s.190(1)(a) — bank? |
| `schedule38.isDepositTakingMortgageLender` | boolean \| null \| number \| string |  | s.190(1)(c) — deposit-taking mortgage lender? |
| `schedule38.isHoldcoUnderS190_1_e` | boolean \| null \| number \| string |  | s.190(1)(e) — holdco with all/substantially-all assets in shares or debt of related (a)-(e) corps (CRA admin practice ≥90% of FMV). |
| `schedule38.isLifeInsuranceCorpInCanada` | boolean \| null |  | s.190(1)(d) — life insurance corp carrying on business in Canada? |
| `schedule38.isTrustCorporation` | boolean \| null \| number \| string |  | s.190(1)(b) — authorized to offer trustee services to the public? |
| `schedule38.relatedSolelyViaCrownControl` | boolean \| null \| number \| string |  | s.190.15(6)(a) — related SOLELY because of Crown control (deemed NOT related for s.190.14/190.15). |
| `schedule38.relatedSolelyViaS251_5_b_Right` | boolean \| null \| number \| string |  | s.190.15(6)(b) — related SOLELY via a s.251(5)(b) right. |
| `schedule38.rightAcquiredForAvoidancePurpose` | boolean \| null \| number \| string |  | s.190.15(6) closing exception: was ONE OF THE MAIN PURPOSES for acquiring the s.251(5)(b) right to avoid a limitation on the amount of a corporation's capital deduction? Avoidance need only be among the main purposes, not the predominant one. Yes treats the right as exercised, so the corporations stay related for the s.190.15 capital deduction. It does not restore relatedness for s.190.14. Required whenever relatedSolelyViaS251_5_b_Right is true: a blank withholds the deeming rather than granting the $1B standalone capital deduction. |
| `schedule3CoverageReview` | array \| boolean \| null \| number \| object \| string |  | The reviewed Schedule 3 coverage packet, for callers with no persisted dividends workpaper. It carries schemaVersion 1, reviewed, reviewedAt, Part IV loss-claim and Part 4 exclusion conclusions/amounts, plus the ITA 137(5.1) payer-credit-union election answer and allocations used for the paragraph 137(5.2)(a) section 112 grind and paragraph 137(5.2)(b) income inclusion. If a dividends workpaper already holds a packet, this copy must be identical to it or the request is rejected. |
| `schedule43` | null \| object |  | Schedule 43 inputs for Parts IV.1 and VI.1 tax, dividend allowances, elections and related-corporation transfers. |
| `schedule43.amalgamationElectionReviewComplete` | boolean \| null |  | Complete exchanged-class review under s.87(4.2)(e), including non-qualifying exchanges. |
| `schedule43.amalgamationShareExchanges` | array \| null |  | Predecessor share-class exchanges on an amalgamation, the roster the ITA 87(4.2)(e) election-continuity review reads: one row per exchanged class, carrying the amalgamation date, the predecessor's business number, the predecessor and successor class ids, and the three answers the review turns on (whether a new share was issued for the predecessor share, whether its terms are the same or substantially the same, and whether the predecessor had made the subsection 191.2(1) election). Optional and conditional on there being an amalgamation history at all: where the history applies and the roster is absent, the review raises an election-review error rather than reading the absence as a non-election, and no charging operand moves either way. |
| `schedule43.amalgamationShareExchanges[]` | object |  |  |
| `schedule43.amalgamationShareExchanges[].amalgamationDate` | null \| string |  | Date of the amalgamation the exchange happened on, ISO YYYY-MM-DD. |
| `schedule43.amalgamationShareExchanges[].newShareIssuedForPredecessorShare` | boolean \| null |  | Whether a new share was issued in exchange for the predecessor share. ITA 87(4.2)(e) carries the predecessor's subsection 191.2(1) election forward only on such an exchange. |
| `schedule43.amalgamationShareExchanges[].predecessorBusinessNumber` | null \| string |  | Business number of the predecessor corporation whose class was exchanged. |
| `schedule43.amalgamationShareExchanges[].predecessorElectionMade` | boolean \| null |  | Whether the predecessor had made the subsection 191.2(1) election for the exchanged class. Where the two conditions above hold, that answer is the one that carries to the successor class. |
| `schedule43.amalgamationShareExchanges[].predecessorShareClassId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the predecessor share class given up in the exchange. |
| `schedule43.amalgamationShareExchanges[].sameOrSubstantiallySameTerms` | boolean \| null |  | Whether the new share's terms and conditions are the same as, or substantially the same as, the predecessor share's, the second ITA 87(4.2)(e) condition. |
| `schedule43.amalgamationShareExchanges[].successorShareClassId` | array \| boolean \| null \| number \| object \| string |  | Identifier of the successor (amalgamated corporation) share class received for it. |
| `schedule43.electionUnderS191_2_1Made` | boolean \| null |  | Flag: a s.191.2(1) election is in force for ≥1 class/series of TPS. Required when line 230 > 0. The election is IRREVOCABLE per s.191.2(1) closing words. |
| `schedule43.isAssociatedAndAllocating` | boolean \| null |  | Flag: corporation is associated and allocating the $500K dividend allowance among the associated group. When true, Part 2 rows are required and line 210 sources from this corp's own line-140 row rather than the full line 115. |
| `schedule43.isRestrictedFinancialInstitution` | boolean \| null |  | Flag: the corporation is a restricted financial institution per s.248(1). Required when line 320 > 0. |
| `schedule43.line116DateFiled` | array \| boolean \| null \| number \| object \| string |  | Box 116 — Date the agreement was filed. The form marks this area "do not use"; the value is recorded but not transmitted. |
| `schedule43.line117IsAmendedAgreement` | array \| boolean \| null \| number \| object \| string |  | Box 117 — Is this an amended agreement? |
| `schedule43.line118CalendarYearOfAgreement` | null \| number \| string |  | Box 118 — Calendar year to which the agreement applies. |
| `schedule43.line1BPriorYearNonExcludedDividendsPaid` | null \| number \| string |  | Amount 1B — Prior CALENDAR YEAR non-excluded taxable dividends paid by the corp (or the ASSOCIATED GROUP — see Part 2 point 1) on TPS or shares that would be TPS if issued after June 18, 1987. NOT a printed CRA box code but captured for the line 110 calculation. |
| `schedule43.line210OwnAllocation` | null \| number \| string |  | Optional override for line 210 — the practitioner's own allocation when associated. Defaults to the first Part 2 row's column 140 if not provided. Short-year proration applied at the engine level per the form's Note 1 (< 51 weeks → days/365). |
| `schedule43.line220StpsDividendsPaid` | null \| number \| string |  | Line 220 — Non-excluded taxable dividends paid on STPS in the year. Per s.191.1(1)(a). Allowance is absorbed against STPS first. |
| `schedule43.line230ElectedTpsDividendsPaid` | null \| number \| string |  | Line 230 — Non-excluded taxable dividends paid on TPS (other than STPS) for classes WITH a s.191.2(1) election (40% rate). |
| `schedule43.line240NonElectedTpsDividendsPaid` | null \| number \| string |  | Line 240 — Non-excluded taxable dividends paid on TPS (other than STPS) for classes WITHOUT a s.191.2(1) election (25% rate per s.191.1(1)(a)(iii)). |
| `schedule43.line250TransferredInFromRelatedCorp` | null \| number \| string |  | Line 250 — Part VI.1 tax transferred IN from a related corp under a s.191.3 agreement (Schedule 45 companion). |
| `schedule43.line260TransferredOutToRelatedCorp` | null \| number \| string |  | Line 260 — Part VI.1 tax transferred OUT to a related corp under a s.191.3 agreement. Cannot exceed 3C + 3I + 3Q per s.191.3(1)(b). |
| `schedule43.line310TpsDividendsReceived` | null \| number \| string |  | Line 310 — Non-excepted taxable dividends received on TPS (other than classes the PAYER has elected under s.191.2(1)). |
| `schedule43.line320RfiSharesDividendsReceived` | null \| number \| string |  | Line 320 — RFI-only: non-excepted taxable dividends received on taxable RFI shares per s.187.3. |
| `schedule43.line350PortionAlsoSubjectToPartIv` | null \| number \| string |  | Line 350 — Portion of line 330 also subject to Part IV tax. |
| `schedule43.line370PortionFromConnectedCorps` | null \| number \| string |  | Line 370 — Portion of line 350 received from connected corps. |
| `schedule43.line380PartIvTaxOnLine370Dividends` | null \| number \| string |  | Line 380 — Part IV tax on the dividends reported on line 370. |
| `schedule43.line390PortionFromNonConnectedCorps` | null \| number \| string |  | Line 390 — Portion of line 350 received from non-connected corps. |
| `schedule43.line400EligibleTaxableDividendsFromLine390` | null \| number \| string |  | Line 400 — Eligible-dividend SUBSET of line 390. |
| `schedule43.part2Agreement` | null \| object |  | CAP-R2 — the persisted ITA 191.1(3) agreement attestation. Boxes 116 / 117 / 118 record only WHEN the agreement was filed and WHICH calendar year it names; subsection 191.1(3) grants an allocated allowance only where ALL of the associated corporations filed the prescribed agreement, and paragraph 191.1(6)(b) makes later associated taxation years ending in the same calendar year reuse the first such year's unprorated allowance. Both attestations are tri-state: null is UNANSWERED and keeps line 210 withheld. |
| `schedule43.part2Agreement.attestedFiledByEveryAssociatedTpsPayer` | boolean \| null |  | ITA 191.1(3): the agreement is effective only where ALL of the associated corporations filed it. Null is unanswered. |
| `schedule43.part2Agreement.calendarYear` | null \| number |  | Calendar year the agreement allocates for. Must equal the calendar year in which this return's taxation year ends. |
| `schedule43.part2Agreement.firstTaxYearAllowanceContinuity191_1_6b` | boolean \| null |  | ITA 191.1(6)(b): where more than one associated taxation year ends in the same calendar year, the later years reuse the FIRST such year's unprorated allowance before paragraph (6)(a) prorates. Null is unanswered. |
| `schedule43.part2Rows` | array \| null |  | Allocation rows. |
| `schedule43.part2Rows[]` | object |  |  |
| `schedule43.part2Rows[].businessNumber` | null \| string |  | Column 130 — Business number (or literal "NR" if not registered). |
| `schedule43.part2Rows[].dividendAllowanceAllocated` | null \| number \| string |  | Column 140 — Dividend allowance allocated to this corp. Total of column 140 across all rows cannot exceed line 115. |
| `schedule43.part2Rows[].hasTaxYearEndingInCalendarYear` | boolean \| null |  | Any taxation year ends in the agreement calendar year, s.191.1(6)(b). |
| `schedule43.part2Rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule43.part2Rows[].name` | null \| string |  | Column 120 — Name of the associated corporation. |
| `schedule43.part4ExemptionApplies` | boolean \| null |  | Non-printed tri-state for the ITA s.187.1(c) recipient-status exception. Yes means all Part 4 dividends were received while the corporation was private or by a financial intermediary corporation. This answer only reconciles the server-owned private-corporation and ITA 191(1) status facts; it cannot authorize the exemption by itself. New forms initialize it to null (unresolved). |
| `schedule45` | null \| object |  |  |
| `schedule45.isFilingAsTransferor` | boolean \| null |  | Whether this return belongs to the transferor corporation rather than a transferee corporation named in the agreement. |
| `schedule45.line105TotalPartVi1TaxTransferred` | null \| number \| string |  | Box 105: total Part VI.1 tax specified as transferred in the agreement. The total of transferee column 233 cannot exceed this amount. |
| `schedule45.transferees` | array \| null |  | Transferee rows (box 225 / 230 / 233 / 235 per row). |
| `schedule45.transferees[]` | object |  |  |
| `schedule45.transferees[].businessNumber` | null \| string |  | Box 230 — Full 15-character CRA program account (9 digits, 2 letters, and 4 digits). The form does not authorize an "NR" alternative. |
| `schedule45.transferees[].id` | null \| string |  | Stable row identity for retaining the current transferee row through edits and row reordering. |
| `schedule45.transferees[].name` | null \| string |  | Box 225 — Name of the transferee corporation. |
| `schedule45.transferees[].transfereeTaxYearEnd` | null \| string |  | Box 235 — Tax year end (YYYY-MM-DD) to which this agreement applies for the transferee. Per s.191.3(1)(b) this is the transferee's last taxation year ending at or before the end of the transferor's taxation year. |
| `schedule45.transferees[].transferredAmount` | null \| number \| string |  | Box 233 — Part VI.1 tax transferred to this transferee, in CAD. Must be positive. Sum of column 233 across rows feeds box 105 and must not exceed the transferor's gross Part VI.1 tax per s.191.3(1)(c). |
| `schedule46` | null \| object |  | Part II tobacco manufacturing facts and evidence, retained in schedule_46. Omit or null when unopened. |
| `schedule49` | null \| object |  | Schedule 49 agreement and associated-corporation roster, including expenditure-limit allocation rows and rosterComplete. It supports the Schedule 31 SR&ED expenditure limit and associated-group reconciliation. Omission supplies no agreement or complete-roster confirmation; an associated claim still needs its allocation. |
| `schedule49.rows` | array \| null |  | Rows of associated corporations in the group (CCPCs + non-CCPCs). |
| `schedule49.rows[]` | object |  |  |
| `schedule5` | null \| object |  | The Schedule 5 input blob holding the provincial and territorial allocation answers. Omit it when the corporation sends no Schedule 5 input. |
| `schedule5.co17PassThrough` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule5.quebecPreparation` | null \| object |  | Independent Quebec CO-17 preparation selections, kept apart from prepared CO-17 boxes. Partial drafts are accepted; omit it or send null when it was not opened. Each populated group holds Schedule 5 with an error until its Quebec calculation exists, including a group whose only entry is an explicit zero. |
| `schedule5.quebecPreparation.currency` | null \| string |  | Currency of the entered Quebec amounts. Only CAD is accepted; null or an empty string leaves it unanswered. |
| `schedule5.quebecPreparation.donations` | null \| object |  | Quebec donation and gift deduction selections, each an exact entered amount, with the donation worksheet's choices on sharing the federal opening balances. Null or an empty object is unopened. Any populated member, including zero or an explicit choice, holds Schedule 5 until the Quebec donation calculation exists. |
| `schedule5.quebecPreparation.donations.charitable` | null \| string |  | Charitable donations amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.culturalProperty` | null \| string |  | Certified cultural property gifts amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.ecologicalLand` | null \| string |  | Certified ecologically sensitive land gifts amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.medicine` | null \| string |  | Gifts of medicine amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.musicalInstruments` | null \| string |  | Gifts of musical instruments amount selected for the Quebec deduction, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.donations.useFederalCulturalPropertyOpening` | boolean \| null \| string |  | Whether the Quebec certified cultural property gifts continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalDonationsOpening` | boolean \| null \| string |  | Whether the Quebec charitable donations continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalEcologicalLandOpening` | boolean \| null \| string |  | Whether the Quebec ecologically sensitive land gifts continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.donations.useFederalMedicineOpening` | boolean \| null \| string |  | Whether the Quebec gifts of medicine continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the donation group held. |
| `schedule5.quebecPreparation.incomeAdjustments` | null \| object |  | Signed corrections in computing Quebec net income for tax purposes (CO-17.A.1), entered by printed category code, with the text naming the other addition and deduction. Null or an empty object is unopened. Any entered correction, including zero, holds Schedule 5 until the Quebec net-income calculation exists. |
| `schedule5.quebecPreparation.incomeAdjustments.additions` | null \| object |  | Signed Quebec net-income additions keyed by printed category code; 299 is the other category. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. An undeclared code is refused. A correction is not a packed transfer row and imports no computed amount. |
| `schedule5.quebecPreparation.incomeAdjustments.deductions` | null \| object |  | Signed Quebec net-income deductions keyed by printed category code; 299 is the other category. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. An undeclared code is refused. A correction is not a packed transfer row and imports no computed amount. |
| `schedule5.quebecPreparation.incomeAdjustments.otherAdditionDescription` | null \| string |  | Text naming the Quebec net-income addition entered under the other category, code 299. |
| `schedule5.quebecPreparation.incomeAdjustments.otherDeductionDescription` | null \| string |  | Text naming the Quebec net-income deduction entered under the other category, code 299. |
| `schedule5.quebecPreparation.losses` | null \| object |  | Quebec loss deduction selections, each an exact entered amount, with the loss worksheet's choices on sharing the federal opening balances of farm, restricted farm and listed personal property losses. Null or an empty object is unopened. Any populated member, including zero or an explicit choice, holds Schedule 5 until the Quebec loss calculation exists. |
| `schedule5.quebecPreparation.losses.capital` | null \| string |  | Capital loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.farm` | null \| string |  | Farm loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.listedPersonalProperty` | null \| string |  | Listed personal property loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.nonCapital` | null \| string |  | Non-capital loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.restrictedFarm` | null \| string |  | Restricted farm loss amount selected for deduction in Quebec, as exact nonnegative decimal text with at most 12 decimal places. Null or an empty string is unanswered. An entered amount, including zero, is a selection; it does not establish an allowable deduction. |
| `schedule5.quebecPreparation.losses.useFederalFarmOpening` | boolean \| null \| string |  | Whether the Quebec farm loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.losses.useFederalListedPersonalPropertyOpening` | boolean \| null \| string |  | Whether the Quebec listed personal property loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.losses.useFederalRestrictedFarmOpening` | boolean \| null \| string |  | Whether the Quebec restricted farm loss continuity shares the federal opening balance. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance and keeps the loss group held. |
| `schedule5.quebecPreparation.periodEnd` | null \| string |  | End of the Quebec fiscal period as a complete ISO date (YYYY-MM-DD). Null or an empty string leaves it unanswered. It cannot fall before periodStart. |
| `schedule5.quebecPreparation.periodStart` | null \| string |  | Start of the Quebec fiscal period as a complete ISO date (YYYY-MM-DD). Null or an empty string leaves it unanswered. It cannot fall after periodEnd. |
| `schedule5.quebecPreparation.reserveChoices` | null \| object |  | Choices on whether the Quebec reserve continuities use the federal reserve openings. Null or an empty object is unopened. Either explicit answer imports no federal balance and holds Schedule 5 until the Quebec reserve calculation exists. |
| `schedule5.quebecPreparation.reserveChoices.useFederalCapitalGainsReserveOpenings` | boolean \| null \| string |  | Whether the Quebec capital gains reserves use the same openings as the federal capital gains reserves. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.reserveChoices.useFederalFinancialStatementReserveOpenings` | boolean \| null \| string |  | Whether the Quebec reserves taken from the financial statements use the same openings as the federal ones. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.reserveChoices.useFederalReserveOpenings` | boolean \| null \| string |  | Whether the Quebec reserves use the same openings as the federal reserves. Send true or false; null or an empty string is unanswered, which is not No. Either answer imports no balance. |
| `schedule5.quebecPreparation.specialTaxEntries` | null \| object |  | Quebec special-tax amounts and their write-off amounts, entered by printed category code. Null or an empty object is unopened. Any entered amount, including zero, holds Schedule 5 until the Quebec special-tax calculation and its settlement exist. |
| `schedule5.quebecPreparation.specialTaxEntries.taxAmounts` | null \| object |  | Signed Quebec special-tax amounts keyed by printed category code 1 to 102, written without leading zeros. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. Any other key, including a total, is refused. Kept separate from write-off amounts. |
| `schedule5.quebecPreparation.specialTaxEntries.writeOffAmounts` | null \| object |  | Signed Quebec special-tax write-off amounts keyed by the same printed category code 1 to 102, written without leading zeros. Each value is exact decimal text with at most 12 decimal places; null or an empty string leaves that category unanswered. Any other key, including a total, is refused. |
| `schedule50` | null \| object |  |  |
| `schedule50.rows` | array \| null |  | Current T4012 says to provide a maximum of the 10 top shareholders. Empty rows (all fields null) are allowed and remain no-ops. Rows beyond 10 trigger roster review; Filemark does not infer a supplementary- attachment procedure from the printed-grid capacity. |
| `schedule50.rows[]` | object |  |  |
| `schedule510` | null \| object |  | Ontario Schedule 510 corporate minimum tax inputs, including assets, revenue, association facts and loss or credit continuity. When omitted, the engine still tests CMT liability if Schedule 5 establishes an Ontario permanent establishment; missing required facts remain unresolved. |
| `schedule510.schedule512` | null \| object |  | Ontario Schedule 512 special additional tax inputs for a life insurance corporation, carrying the capital, reserve-liability, residence and related-group facts the tax is computed from. Under the Taxation Act, 2007 (Ontario), Sched. A, s.63, the tax is 1.25 per cent of taxable paid-up capital prorated by the days in the year over 365, less the Division B and Division C tax for the year. Omission supplies no Schedule 512 input; for a life insurance corporation carrying on business in Ontario the tax then stays unresolved rather than nil. |
| `schedule510.schedule512.isLifeInsuranceCorporation` | boolean \| null |  |  |
| `schedule55` | null \| object |  |  |
| `schedule56` | null \| object |  |  |
| `schedule6` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule63` | null \| object |  |  |
| `schedule67` | null \| object |  |  |
| `schedule67.hadAmalgamationIn2020Or2021` | boolean \| null \| number \| string |  | Had an amalgamation in 2020 or 2021 → predecessor TI must be included in line 200/210 per Note 1. |
| `schedule67.hadWindupIn2020Or2021` | boolean \| null \| number \| string |  | Had a wind-up in 2020 or 2021 → subsidiary TI must be included in line 200/210 per Note 1. |
| `schedule67.hasMultiple2022TaxYears` | boolean \| null \| number \| string |  | Corp had multiple 2022 tax years → bullet 3 instructs to use the LATEST 2022 TY. |
| `schedule67.isBank` | boolean \| null |  | Is this corp a bank? (Per Bank Act + s.190(1).) |
| `schedule67.isFinancialInstitutionRelatedToBankOrLifeInsurer` | boolean \| null \| number \| string |  | Is this corp a financial institution per s.190(1) that is RELATED to a bank or life-insurance corp carrying on business in Canada? |
| `schedule67.isLifeInsuranceCorpInCanada` | boolean \| null |  | Is this corp a life insurance corporation carrying on business in Canada? (Per s.190(1).) |
| `schedule67.isNonResident` | boolean \| null \| number \| string |  | Non-resident corp → TI substituted with "taxable income earned in Canada" per Note 1. |
| `schedule67.wasBankOrLifeInsurerGroupMemberInA2021TaxYear` | boolean \| null \| number \| string |  | Was this corp "a bank or life insurer group member at any time during a 2021 taxation year"? (s.191.5(2) verbatim.) The Part VI.2 charge exists only if yes — a corp that first became a bank in 2022 answers the three flags above "yes" and owes nothing. Engine fails closed (error + missing_required) on null; false → nil charge for all five instalment years. |
| `schedule68` | null \| object |  |  |
| `schedule68.hasAntiAvoidanceAddbackS123_6_6` | boolean \| null \| number \| string |  | Anti-avoidance s.(6) addback applies. |
| `schedule68.hasFunctionalCurrencyElectionS261` | boolean \| null \| number \| string |  | Functional-currency election under s.261 — translate the $100M fixed amount under s.261(5)(b) at the first-day relevant spot rate. |
| `schedule68.isAmalgamationSuccessor` | boolean \| null \| number \| string |  | Amalgamation successor — distinct from S67/Part VI.2 rollover. |
| `schedule68.isAmendedAgreement` | boolean \| null \| number \| string |  | Box 075 — is this an amended agreement? |
| `schedule68.isBank` | boolean \| null |  | Para (a) — bank? |
| `schedule68.isFinancialInstitutionRelatedToBankOrLifeInsurer` | boolean \| null \| number \| string |  | Para (c) — FI per s.190(1) related to bank/life-insurer? |
| `schedule68.isHoldcoUnderS190_1_e` | boolean \| null \| number \| string |  | s.190(1)(e) holdco of bank/life-insurer subsidiary. |
| `schedule68.isLifeInsuranceCorpInCanada` | boolean \| null |  | Para (b) — life insurance corp carrying on business in Canada? |
| `schedule68.isNonResident` | boolean \| null \| number \| string |  | Non-resident corp → TIEC per Note 1. |
| `schedule68.isPCInsurer` | boolean \| null \| number \| string |  | P&C insurer (NOT s.190(1) FI unless related to bank/life-insurer). |
| `schedule68.isWindupSuccessor` | boolean \| null \| number \| string |  | Wind-up successor — same as amalgamation (no rollover). |
| `schedule71` | null \| object |  |  |
| `schedule71.__prior_year_aspa_inclusions__` | object |  |  |
| `schedule71.__prior_year_qti_reserves__` | object |  |  |
| `schedule71.__prior_year_unresolved_partnerships__[]` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.becameBankruptInYear` | array \| boolean \| null \| number \| object \| string |  | s.34.2(7): bankruptcy in year carves out (2) and (3). |
| `schedule71.corpFilingDueDate` | null \| string |  | YYYY-MM-DD override of the ITA 150(1)(a) filing-due date the engine derives (six months after the tax-year end, CRA day-of-month rule, rolled off a holiday). s.34.2(3) is available only where the particular period ends on or before that date. |
| `schedule71.corpFilingDueDateAdjustment` | object |  | Explains a corpFilingDueDate that differs from the date the engine derives under ITA s.150(1)(a). Two members are required: basis is either interpretation_act_holiday_roll or ministerial_extension_s220_3, and evidence is non-blank text naming the record relied on. Anything else, including an unexplained difference, leaves the derived date authoritative. A s.220(3) extension can only move the date later; a claimed holiday roll must reproduce the date the engine computes for it. |
| `schedule71.corpFilingDueDateAdjustment.basis` | null \| string |  |  |
| `schedule71.corpFilingDueDateAdjustment.evidence` | null \| string |  |  |
| `schedule71.corpTaxYearEnd` | null \| string |  | YYYY-MM-DD. The corporation's taxation-year end, the last bound of ITA 34.2(1) variable C. The Hub fills it from the return's tax year (jacket box 061); a standalone request states it; the return's period governs when both are present. |
| `schedule71.corpTaxYearStart` | null \| string |  | YYYY-MM-DD. The corporation's taxation-year start, the first bound of ITA 34.2(1) variable C and the 3C day counts. The Hub fills it from the return's tax year (jacket box 060) and does not offer it for entry; a standalone request states it. When the request also carries the return's period (fiscalStart/fiscalEnd, or the jacket's identification dates), that period governs and a disagreement blocks the schedule. |
| `schedule71.isMultiTierPartnership` | array \| boolean \| null \| number \| object \| string |  | Scope check: partnership is multi-tier (s.102(2) / s.249.1(1)(c)) — engine blocks with a "use Schedule 72" error. |
| `schedule71.isProfessionalCorp` | array \| boolean \| null \| number \| object \| string |  | s.34.2(2) chapeau: PC excluded (uses s.34.1 instead). |
| `schedule71.multiTierAlignmentYear1Suspension` | array \| boolean \| null \| number \| object \| string |  | s.34.2(9): TY preceding the first aligned FY end — subsection (2) suspended for the affected partnership. |
| `schedule71.partnershipIsForeignAffiliateSurrogate` | array \| boolean \| null \| number \| object \| string |  | s.34.2(8): FAPI / foreign-affiliate surplus carveout. |
| `schedule71.partnerships` | array \| null |  |  |
| `schedule71.partnerships[]` | object |  |  |
| `schedule71.partnerships[].actual_stub_period_accrual_s343` | null \| number \| string |  | Form 4K analogue — actual stub period accrual (s.34.3(1) A-side). |
| `schedule71.partnerships[].avg_daily_prescribed_rate_reg_4301_a` | null \| number \| string |  | Form 4S — average daily Reg 4301(a) rate (daily, NOT annualized). Engine blocks the shortfall with an error when missing. |
| `schedule71.partnerships[].avg_daily_prescribed_rate_reg_4301_a_source` | array \| boolean \| null \| number \| object \| string |  | Where a practitioner-entered amount 4S daily rate comes from, as free text. ITA s.34.3(1) variable D is determined by reference to the rate prescribed under Regulation 4301(a), so an entered rate is admissible only for a variable-C window no published quarter reaches, and then only with a named source. Blank or omitted leaves the rate unusable and blocks the shortfall. |
| `schedule71.partnerships[].baseYearAspaRequired` | array \| boolean \| null \| number \| object \| string |  | Part 4: was an ASPA calculation required for the preceding year (s.34.3(1))? Null needs evidence when no positive prior inclusion or F designation establishes it. |
| `schedule71.partnerships[].baseYearFiscalPeriodEnd` | null \| string |  | Part 4: end of that partnership period, inside this corporate taxation year (s.34.3(1)). |
| `schedule71.partnerships[].baseYearFiscalPeriodStart` | null \| string |  | Part 4: start of the partnership period spanning the preceding corporate year-end. Needed when the last fiscal period is a later period. |
| `schedule71.partnerships[].base_year_aspa_inclusion` | null \| number \| string |  | Base-year ASPA inclusion under s.34.2(2) (s.34.3(1) B). |
| `schedule71.partnerships[].base_year_aspa_with_F_set_nil` | null \| number \| string |  | Form amount 4N — base-year ASPA recomputed with F = nil (s.34.3(1) A-side cap). When null the engine derives it as amount 4L + amount 4M per the form face, floored at zero. |
| `schedule71.partnerships[].base_year_var_F_discretionary` | null \| number \| string |  | Form amount 4M — discretionary amount designated in the BASE year (base-year amount 2K). Carried forward automatically; supplied so amount 4N can be derived. |
| `schedule71.partnerships[].box_3A_discretionary_designation` | null \| number \| string |  | Form amount 3A — discretionary designation by the corp. |
| `schedule71.partnerships[].box_3B_corp_income_particular_period` | null \| number \| string |  | Form amount 3B — corp income from particular period (excl s.112/113). |
| `schedule71.partnerships[].box_3C_day_ratio` | null \| number \| string |  | Form amount 3C — day-ratio override (auto from dates if null). |
| `schedule71.partnerships[].box_4Q_base_year_end` | null \| string |  | Part 4 amount 4Q: the corporation's base-year end, used to count the days from the following day through the current taxation year-end. The base year is the preceding corporate taxation year in which the qualifying partnership period began. |
| `schedule71.partnerships[].continuousMembershipSinceBeforeMarch22_2011` | array \| boolean \| null \| number \| object \| string |  | s.34.2(13)(a) transitional condition: the corporation has been a member of the partnership continuously since before March 22, 2011; required for the qualifying transitional income reserve. |
| `schedule71.partnerships[].corpBankruptOrDissolvedOtherThanS881` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].corpEntitledToShareAtParticularPeriodEnd` | boolean \| null |  | ITA 34.2(2)(c) — "at the end of the year, the corporation is entitled to a share of an income, loss, taxable capital gain or allowable capital loss of the partnership for the fiscal period referred to in paragraph (b)". A CONJUNCTIVE condition of s.34.2(2), so the engine reads it as a strict tri-state: true includes the row's ASPA, false applies the (2)(c) carveout and zeroes it, and null (unanswered) WITHHOLDS the ASPA and blocks. Never fires on a s.34.2(3) new-member row — (3) has no paragraph (c) equivalent. |
| `schedule71.partnerships[].corpNonResidentNoPE` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].corpSharePercentage` | null \| number \| string |  | Box 230 — corp share % at end of last FY (0-100). |
| `schedule71.partnerships[].corpTaxExempt` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].corp_income_before_reserve` | null \| number \| string |  | Cap (iii) — income before claiming the reserve. |
| `schedule71.partnerships[].days_base_year_end_to_ty_end` | null \| number \| string |  | Form 4Q — days from day-after-base-year-end to TY-end. |
| `schedule71.partnerships[].deemedContinuingPartnerUnderS342_14` | array \| boolean \| null \| number \| object \| string |  | s.34.2(14) deemed-continuity exception for a successor partner. |
| `schedule71.partnerships[].eligibleAlignmentIncome` | null \| number \| string |  | One-time eligible alignment income (persists year-over-year). |
| `schedule71.partnerships[].firstQtiTaxationYearEndYear` | array \| boolean \| null \| number \| object \| string |  | Calendar year in which the corporation's FIRST taxation year with qualifying transitional income ends. Selects s.34.2(1) paragraph (a) 2011, (b) 2012 or (c) 2013 outright; null derives it from qtiYearIndex. |
| `schedule71.partnerships[].firstTaxationYearS342_17AppliesEndYear` | null \| number \| string |  | ITA 34.3(2)(b) — calendar year in which the corporation's first taxation year to which s.34.2(17) applies ends. Consulted when the corporation has QTI anywhere on Schedule 71 or 72; ITA 34.2(16) fixes the historical year, so an absent answer blocks rather than assuming the condition is met. |
| `schedule71.partnerships[].firstYearAspaForQti` | null \| number \| string |  | First-year ASPA component of the QTI base. |
| `schedule71.partnerships[].id` | array \| boolean \| null \| number \| object \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule71.partnerships[].isNewCorpMemberInParticularPeriod` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].noEarlierFiscalPeriodEndedInYear` | array \| boolean \| null \| number \| object \| string |  | Confirms that the partnership's last fiscal period was its first, so no earlier fiscal period also ended in the taxation year. Send it when that period began after the taxation year began, otherwise variable D is held as incomplete. Booleans, the numbers 0 and 1, and the strings true, yes, y, 1, false, no, n and 0 are all accepted. |
| `schedule71.partnerships[].noFiscalPeriodEndedInYear` | array \| boolean \| null \| number \| object \| string |  | True iff no FY ended in TY (AoC short year / amalgamation). Per CRA T.I. 2014-0539191E5 — row ASPA = 0. |
| `schedule71.partnerships[].particularPeriodEnd` | null \| string |  | Particular \[stub\] period end (FY ending after TY). |
| `schedule71.partnerships[].particularPeriodStart` | null \| string |  | Box 225 — particular \[stub\] period start (FY beginning in TY). |
| `schedule71.partnerships[].partnershipBN` | array \| boolean \| null \| number \| object \| string |  | Box 210 — full 15-character RZ partnership account. |
| `schedule71.partnerships[].partnershipBusinessContinued` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].partnershipFYEndInYear` | null \| string |  | Box 220 — partnership FY end (last FY ending in TY). YYYY-MM-DD. |
| `schedule71.partnerships[].partnershipFYStartInYear` | null \| string |  | Partnership FY START, used to derive variable D (box 255). There is no 365-day fallback: send this or `var_D_days_in_FYs_ending_in_year`, or the row is blocked. |
| `schedule71.partnerships[].partnershipName` | array \| boolean \| null \| number \| object \| string |  | Box 200 — partnership's name. |
| `schedule71.partnerships[].post_2012_s112_s113_dividend_deductions` | null \| number \| string |  | Cap (iii) — post-2012 s.112/s.113 dividend deductions. |
| `schedule71.partnerships[].qtiComputedUsingMaximumDeductionsS342_15` | array \| boolean \| null \| number \| object \| string |  | Confirms the s.34.2(15) maximum-deductions premise for QTI. |
| `schedule71.partnerships[].qtiReserveClaimedRow` | null \| number \| string |  | Box 115 input — QTI reserve claimed (least-of-three capped). |
| `schedule71.partnerships[].qtiTcgComponent` | null \| number \| string |  | ITA 34.2(11)(b)(ii) — taxable-capital-gain component of the row's qualifying transitional income. null is unanswered; enter 0 if nil. |
| `schedule71.partnerships[].qtiYearIndex` | array \| boolean \| null \| number \| object \| string |  | 0 = alignment year, ..., 5+ = fully phased out. Ordinal only — the s.34.2(1) "specified percentage" is fixed by two CALENDAR years, so the engine resolves the paragraph from the corporation's TY-end year together with firstQtiTaxationYearEndYear (or this index). No paragraph reaches a particular year after 2017. |
| `schedule71.partnerships[].recentMembershipForReserveAvoidance` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule71.partnerships[].relatedPartyAggregatedSharePercentage` | null \| number \| string |  | Related-party-aggregated share % for the significant-interest look-through (s.34.2(1)). |
| `schedule71.partnerships[].s342_16_17_qti_adjustment_amount` | null \| number \| string |  | s.34.2(16)/(17) post-filing adjustment (adds to cap (ii)). |
| `schedule71.partnerships[].significantInterestConfirmed` | array \| boolean \| null \| number \| object \| string |  | Confirms significant interest at the end of the partnership's last fiscal period ending in the corporation's taxation year: the corporation, alone or together with related or affiliated persons or partnerships, is entitled to more than 10% of income or loss, or more than 10% of net assets if the partnership ceased to exist. |
| `schedule71.partnerships[].var_A_active_business_component` | null \| number \| string |  | The active-business share of this row's variable A character split. ITA 34.2(5)(a)(i) gives the adjusted stub period accrual the same character, in the same proportions, as the income the partnership allocated to the corporation — an allocation fact the corporation cannot infer. Send all three shares: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. |
| `schedule71.partnerships[].var_A_foreign_property_component` | null \| number \| string |  | Foreign share of the property allocation, before the stub-period proration. |
| `schedule71.partnerships[].var_A_includes_s112_s113_dividends` | array \| boolean \| null \| number \| object \| string |  | Error-flag: A includes s.112/s.113 dividends (engine blocks). |
| `schedule71.partnerships[].var_A_other_component` | null \| number \| string |  | The other-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. |
| `schedule71.partnerships[].var_A_property_component` | null \| number \| string |  | The property-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. |
| `schedule71.partnerships[].var_A_share_of_income_and_tcg` | null \| number \| string |  | Box 240 — A: corp share of income + TCG for FYs ending in TY (excl s.112/113 dividends; form amounts 2A + 2D). |
| `schedule71.partnerships[].var_A_tcg_component` | null \| number \| string |  | TCG component inside A (drives the s.34.2(5)(a) character split and the B-side ACL cap). |
| `schedule71.partnerships[].var_B_acl_component` | null \| number \| string |  | ACL component inside B (engine caps it at TCG-in-A). |
| `schedule71.partnerships[].var_B_includes_111_1_e_lp_losses` | array \| boolean \| null \| number \| object \| string |  | Error-flag: B nets s.111(1)(e) LP-loss carryforwards (engine blocks per CRA T.I. 2018-0788161E5 — those go to Schedule 4). |
| `schedule71.partnerships[].var_B_share_of_loss_and_acl` | null \| number \| string |  | Box 245 — B: corp share of loss + ACL (form amounts 2B + 2E). |
| `schedule71.partnerships[].var_C_days_in_both` | null \| number \| string |  | Box 250 — C: days in both TY and stub period (auto from dates when null). |
| `schedule71.partnerships[].var_D_days_in_FYs_ending_in_year` | null \| number \| string |  | Box 255 — D: days in partnership FYs ending in TY (auto from partnershipFYStartInYear when null). There is NO default: T2 SCH 71 (19) Note 2 verbatim allows more than 365 days, and a short fiscal period or a leap year changes the filed ASPA, so a row with neither this override nor partnershipFYStartInYear is BLOCKED. |
| `schedule71.partnerships[].var_E_designated_qre` | null \| number \| string |  | Box 260 — E: designated qualified resource expense (s.34.2(6)). |
| `schedule71.partnerships[].var_E_max_deductible` | null \| number \| string |  | E support — max deductible under s.66.1/66.2/66.21/66.4. |
| `schedule71.partnerships[].var_E_written_info_from_partnership_received` | array \| boolean \| null \| number \| object \| string |  | E support — written info from partnership received before the filing-due date (s.34.2(6) requirement). |
| `schedule71.partnerships[].var_F_designated_in_base_year` | array \| boolean \| null \| number \| object \| string |  | Trigger: corp designated F (amount 2K) in the BASE year. |
| `schedule71.partnerships[].var_F_discretionary` | null \| number \| string |  | Box 265 — F: discretionary designation (IRREVOCABLE, s.34.2(10)). |
| `schedule71.returnFiledOnOrBeforeFilingDueDate` | array \| boolean \| null \| number \| object \| string |  | Whether the return carrying the adjusted stub period accrual designations was, or will be, filed on or before the corporation's filing-due date. The ITA s.34.2(1) descriptions of E and F define both subtrahends only to the extent designated in a return filed on or before that date, so a late return leaves the whole gross accrual in income. Send returnFilingDate instead where the actual date is known; the two are reconciled and a disagreement blocks. Unanswered is neither timely nor late and holds the designations. Booleans, the numbers 0 and 1, and the strings true, yes, y, 1, false, no, n and 0 are all accepted. |
| `schedule71.returnFilingDate` | null \| string |  | The date the return carrying the ITA s.34.2(1) E and F designations was filed, in ISO YYYY-MM-DD form. It governs over the returnFiledOnOrBeforeFilingDueDate attestation: the engine compares it against the s.150(1)(a) filing-due date it derives itself. A value that is not a YYYY-MM-DD date, or one that cannot be tested because the filing-due date is unknown, leaves timeliness unresolved rather than timely. |
| `schedule71.wasOpenedFromDesignatedMemberFlow` | array \| boolean \| null \| number \| object \| string |  | Disambiguation: opened from S7 "designated member" flow? Info advisory — s.125(7) concept, NOT s.34.2. |
| `schedule72` | null \| object |  |  |
| `schedule72.__prior_year_aspa_inclusions__` | object |  |  |
| `schedule72.__prior_year_qti_reserves__` | object |  |  |
| `schedule72.__prior_year_unresolved_partnerships__[]` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.becameBankruptInYear` | array \| boolean \| null \| number \| object \| string |  | s.34.2(7): bankruptcy in year carves out (2) and (3). |
| `schedule72.corpFilingDueDate` | null \| string |  | The corporation's exact filing-due date in ISO YYYY-MM-DD form, sent when it differs from the date derived under ITA s.150(1)(a), for the s.34.2(3) test that the particular period ends on or before that date. |
| `schedule72.corpFilingDueDateAdjustment` | object |  | Explains a corpFilingDueDate that differs from the date the engine derives under ITA s.150(1)(a). Two members are required: basis is either interpretation_act_holiday_roll or ministerial_extension_s220_3, and evidence is non-blank text naming the record relied on. Anything else, including an unexplained difference, leaves the derived date authoritative. A s.220(3) extension can only move the date later; a claimed holiday roll must reproduce the date the engine computes for it. |
| `schedule72.corpFilingDueDateAdjustment.basis` | null \| string |  |  |
| `schedule72.corpFilingDueDateAdjustment.evidence` | null \| string |  |  |
| `schedule72.corpTaxYearEnd` | null \| string |  | YYYY-MM-DD. The corporation's taxation-year end, the last bound of ITA 34.2(1) variable C for the box 2H day ratio. The Hub fills it from the return's tax year (jacket box 061); a standalone request states it; the return's period governs when both are present. |
| `schedule72.corpTaxYearStart` | null \| string |  | YYYY-MM-DD. The corporation's taxation-year start, the first bound of ITA 34.2(1) variable C for the box 2H and 3C day ratios. The Hub fills it from the return's tax year (jacket box 060) and does not offer it for entry; a standalone request states it. When the request also carries the return's period (fiscalStart/fiscalEnd, or the jacket's identification dates), that period governs and a disagreement blocks the schedule. |
| `schedule72.isProfessionalCorp` | array \| boolean \| null \| number \| object \| string |  | s.34.2(2) chapeau: PC excluded (uses s.34.1 instead). |
| `schedule72.isSingleTierPartnership` | array \| boolean \| null \| number \| object \| string |  | Practitioner classification — partnership is actually single-tier. Without stickyMultiTierAfterStructureFlattens, engine blocks with a "use Schedule 71" error. |
| `schedule72.partnershipHasPartnershipMember` | array \| boolean \| null \| number \| object \| string |  | s.102(2) look-through: partnership has a partnership as a member (the principal multi-tier qualifier). |
| `schedule72.partnershipIsForeignAffiliateSurrogate` | array \| boolean \| null \| number \| object \| string |  | s.34.2(8): FAPI / foreign-affiliate surplus carveout. |
| `schedule72.partnerships` | array \| null |  |  |
| `schedule72.partnerships[]` | object |  |  |
| `schedule72.partnerships[].avg_daily_prescribed_rate_reg_4301_a_source` | array \| boolean \| null \| number \| object \| string |  | Where a practitioner-entered amount 4S daily rate comes from, as free text. ITA s.34.3(1) variable D is determined by reference to the rate prescribed under Regulation 4301(a), so an entered rate is admissible only for a variable-C window no published quarter reaches, and then only with a named source. Blank or omitted leaves the rate unusable and blocks the shortfall. |
| `schedule72.partnerships[].baseYearAspaRequired` | array \| boolean \| null \| number \| object \| string |  | Part 4: was an ASPA calculation required for the preceding year (s.34.3(1))? Null needs evidence when no positive prior inclusion or F designation establishes it. |
| `schedule72.partnerships[].baseYearFiscalPeriodEnd` | null \| string |  | Part 4: end of that partnership period, inside this corporate taxation year (s.34.3(1)). |
| `schedule72.partnerships[].baseYearFiscalPeriodStart` | null \| string |  | Part 4: start of the partnership period spanning the preceding corporate year-end. Needed when the last fiscal period is a later period. |
| `schedule72.partnerships[].box_2A_active_business_component` | null \| number \| string |  | Active-business share of amount 2A (s.34.2(5)(a)(i)); enter zero if nil. |
| `schedule72.partnerships[].box_2A_includes_s112_s113_dividends` | array \| boolean \| null \| number \| object \| string |  | Box 2A error-flag: practitioner has included s.112/s.113 dividends in 2A (engine blocks; remove and re-route to S3). |
| `schedule72.partnerships[].box_2A_income` | null \| number \| string |  | Box 2A — corp share of income for FYs ending in TY (excl s.112/113). |
| `schedule72.partnerships[].box_2A_other_component` | null \| number \| string |  | Other-income share of amount 2A (s.34.2(5)(a)(i)); enter zero if nil. |
| `schedule72.partnerships[].box_2A_property_component` | null \| number \| string |  | Property-income share of amount 2A (s.34.2(5)(a)(i)); enter zero if nil. |
| `schedule72.partnerships[].box_2B_includes_111_1_e_lp_losses` | array \| boolean \| null \| number \| object \| string |  | Box 2B error-flag: practitioner has netted s.111(1)(e) LP loss carryforwards into 2B (engine blocks; goes to S4 per T.I. 2018-0788161E5). |
| `schedule72.partnerships[].box_2B_loss` | null \| number \| string |  | Box 2B — corp share of loss for FYs ending in TY. |
| `schedule72.partnerships[].box_2D_tcg` | null \| number \| string |  | Box 2D — corp share of TCG for FYs ending in TY. |
| `schedule72.partnerships[].box_2E_acl` | null \| number \| string |  | Box 2E — corp share of ACL. Engine caps at 2D per form-face. |
| `schedule72.partnerships[].box_2H_day_ratio` | null \| number \| string |  | Box 2H — optional reconciliation value. The engine derives C/D from the statutory day facts and blocks a contradictory entry. |
| `schedule72.partnerships[].box_2J_designated_qre` | null \| number \| string |  | Box 2J — designated qualified resource expense (s.34.2(6)). |
| `schedule72.partnerships[].box_2J_max_deductible` | null \| number \| string |  | Box 2J support — max deductible under s.66.1/66.2/66.21/66.4. |
| `schedule72.partnerships[].box_2J_written_info_from_partnership_received` | array \| boolean \| null \| number \| object \| string |  | Box 2J support — written info from partnership received before filing-due date (s.34.2(6) requirement). |
| `schedule72.partnerships[].box_2K_designated_in_base_year` | array \| boolean \| null \| number \| object \| string |  | Trigger: corp designated 2K (discretionary) in the BASE year. |
| `schedule72.partnerships[].box_2K_discretionary_designation` | null \| number \| string |  | Box 2K — discretionary designation (s.34.2(1) variable F). |
| `schedule72.partnerships[].box_3A_discretionary_designation` | null \| number \| string |  | Box 3A — discretionary designation by the corp. |
| `schedule72.partnerships[].box_3B_corp_income_particular_period` | null \| number \| string |  | Box 3B — corp income from particular period (excl s.112/113). |
| `schedule72.partnerships[].box_3C_day_ratio` | null \| number \| string |  | Box 3C — day-ratio override (engine computes from dates if null). |
| `schedule72.partnerships[].box_4A_base_year_income` | null \| number \| string |  | 4A: share of income for the qualifying fiscal period that began in the base year (s.34.3(1)). |
| `schedule72.partnerships[].box_4B_base_year_loss` | null \| number \| string |  | 4B: share of loss for the qualifying fiscal period that began in the base year (s.34.3(1)). |
| `schedule72.partnerships[].box_4D_base_year_tcg` | null \| number \| string |  | 4D: share of taxable capital gains for the qualifying fiscal period (s.34.3(1)). |
| `schedule72.partnerships[].box_4E_base_year_acl` | null \| number \| string |  | 4E: share of allowable capital losses for the qualifying fiscal period (s.34.3(1)). |
| `schedule72.partnerships[].box_4H_base_year_day_ratio` | null \| number \| string |  | 4H: base-year overlap days divided by days in the qualifying fiscal period (s.34.3(1)). |
| `schedule72.partnerships[].box_4J_base_year_qre_designation` | null \| number \| string |  | 4J: qualified resource expenses designated for the base year (s.34.3(1)). |
| `schedule72.partnerships[].box_4L_base_year_aspa` | null \| number \| string |  | 4L: ASPA included for the base year under s.34.2(2). |
| `schedule72.partnerships[].box_4M_base_year_discretionary` | null \| number \| string |  | 4M: discretionary amount designated for the base year (s.34.3(1)). |
| `schedule72.partnerships[].box_4N_base_year_aspa_with_F_set_nil` | null \| number \| string |  | Amount 4N — ITA 34.3(1) variable A limb (b), the base year's adjusted stub period accrual computed with the value of F set to nil. An override, and the one to send whenever the base year's amount 2M was floored at zero, because the form's own 4N = 4L + 4M shortcut overstates variable A there. null derives the shortcut instead, floored at zero, and 4M then becomes the only way the engine can derive 4N at all. A supplied amount that disagrees with 4L + 4M is still used, with a warning. Same input surface as Schedule 71's `base_year_aspa_with_F_set_nil`. |
| `schedule72.partnerships[].box_4Q_base_year_end` | null \| string |  | Part 4 amount 4Q: the corporation's base-year end, used to count the days from the following day through the current taxation year-end. The base year is the preceding corporate taxation year in which the qualifying partnership period began. |
| `schedule72.partnerships[].box_4Q_days_base_year_end_to_ty_end` | null \| number \| string |  | Box 4Q — days from day-after-base-year-end to current TY-end. |
| `schedule72.partnerships[].box_4S_avg_daily_prescribed_rate_reg_4301_a` | null \| number \| string |  | Box 4S — average daily prescribed rate (Reg 4301(a)) for the 4Q period. Daily rate, NOT annualized. |
| `schedule72.partnerships[].continuousMembershipSinceBeforeMarch22_2011` | array \| boolean \| null \| number \| object \| string |  | s.34.2(13)(a) transitional condition: the corporation has been a member of the partnership continuously since before March 22, 2011; required for the qualifying transitional income reserve. |
| `schedule72.partnerships[].corpBankruptOrDissolvedOtherThanS881` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].corpEntitledToShareAtParticularPeriodEnd` | boolean \| null |  | s.34.2(2)(c) verbatim test: corp must be entitled to a share of income/loss/TCG/ACL of the partnership for the particular \[stub\] fiscal period at the END of the year. False = corp disposed mid- stub; row ASPA forced to zero (HIGH-4). |
| `schedule72.partnerships[].corpNonResidentNoPE` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].corpSharePercentage` | null \| number \| string |  | Box 230 — corp share % at end of last FY (0-100). |
| `schedule72.partnerships[].corpTaxExempt` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].corp_income_before_reserve` | null \| number \| string |  |  |
| `schedule72.partnerships[].deemedContinuingPartnerUnderS342_14` | array \| boolean \| null \| number \| object \| string |  | s.34.2(14) deemed-continuity exception for a successor partner. |
| `schedule72.partnerships[].eligibleAlignmentIncome_b_i` | null \| number \| string |  |  |
| `schedule72.partnerships[].eligibleAlignmentIncome_b_ii` | null \| number \| string |  |  |
| `schedule72.partnerships[].firstQtiTaxationYearEndYear` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].firstTaxationYearS342_17AppliesEndYear` | null \| number \| string |  | ITA 34.3(2)(b) — the calendar year in which the corporation's first taxation year to which s.34.2(17) applies ends. A bare year (2013), not a date. Only consulted where the corporation has qualifying transitional income, which is where limb (b) is a live condition of the s.34.3(3) inclusion. ITA 34.2(16) fixes it as a corporation-level fact the worksheet cannot derive, so an absent answer blocks the row rather than being read as met. |
| `schedule72.partnerships[].firstYearAspaForQti` | null \| number \| string |  |  |
| `schedule72.partnerships[].id` | array \| boolean \| null \| number \| object \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule72.partnerships[].isFirstAlignedFiscalPeriodYear` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].isNewCorpMemberInParticularPeriod` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].noEarlierFiscalPeriodEndedInYear` | array \| boolean \| null \| number \| object \| string |  | Asserts that the fiscal period beginning on `partnershipFYStartInYear` was the partnership's first — that no earlier fiscal period also ended inside the taxation year. Only consulted when the declared FY start falls after the corporation's tax-year start, which otherwise proves a preceding fiscal period ended in the year and blocks. Only a real boolean true asserts; null is unanswered, never false. |
| `schedule72.partnerships[].noFiscalPeriodEndedInYear` | array \| boolean \| null \| number \| object \| string |  | True iff no FY ended in TY (e.g., AoC short year, amalgamation). Per CRA T.I. 2014-0539191E5 — row ASPA = 0. |
| `schedule72.partnerships[].particularPeriodEnd` | null \| string |  | Particular \[stub\] period end (FY ending after TY). |
| `schedule72.partnerships[].particularPeriodStart` | null \| string |  | Box 225 — particular \[stub\] period start (FY beginning in TY). |
| `schedule72.partnerships[].partnershipBN` | array \| boolean \| null \| number \| object \| string |  | Full 15-character RZ partnership account. |
| `schedule72.partnerships[].partnershipBusinessContinued` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].partnershipFYEndInYear` | null \| string |  | Box 220 — partnership FY end (last FY ending in TY). YYYY-MM-DD. |
| `schedule72.partnerships[].partnershipFYStartInYear` | null \| string |  | Partnership FY START, used to derive the amount 2H denominator. There is no 365-day fallback: send this or `var_D_days_in_FYs_ending_in_year`, or the row is blocked. A box 2H entry is reconciliation evidence only. |
| `schedule72.partnerships[].partnershipName` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].post_2012_s112_s113_dividend_deductions` | null \| number \| string |  |  |
| `schedule72.partnerships[].qtiComputedUsingMaximumDeductionsS342_15` | array \| boolean \| null \| number \| object \| string |  | Confirms the s.34.2(15) maximum-deductions premise for QTI. |
| `schedule72.partnerships[].qtiReserveClaimedRow` | null \| number \| string |  |  |
| `schedule72.partnerships[].qtiTcgComponent` | null \| number \| string |  | ITA 34.2(11)(b)(ii) — taxable-capital-gain component of this row's QTI. null is unanswered; enter 0 if nil. |
| `schedule72.partnerships[].qtiYearIndex` | array \| boolean \| null \| number \| object \| string |  | qtiYearIndex — 0 = alignment year, ..., 5+ = fully phased out. |
| `schedule72.partnerships[].recentMembershipForReserveAvoidance` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule72.partnerships[].relatedPartyAggregatedSharePercentage` | null \| number \| string |  | Optional override — related-party-aggregated share % for the significant-interest look-through (s.34.2(1)). |
| `schedule72.partnerships[].s342_16_17_qti_adjustment_amount` | null \| number \| string |  |  |
| `schedule72.partnerships[].significantInterestConfirmed` | array \| boolean \| null \| number \| object \| string |  | Confirms significant interest at the end of the partnership's last fiscal period ending in the corporation's taxation year: the corporation, alone or together with related or affiliated persons or partnerships, is entitled to more than 10% of income or loss, or more than 10% of net assets if the partnership ceased to exist. |
| `schedule72.partnerships[].var_D_days_in_FYs_ending_in_year` | null \| number \| string |  | Amount 2H denominator — ITA 34.2(1)(a) variable D, the number of days in fiscal periods of the partnership that end in the year (the day count Schedule 71 collects at box 255). Send it whenever more than one fiscal period ended in the year: `partnershipFYStartInYear` describes only the last one. There is no default, because amounts 2A/2B/2D/2E already carry income and losses from every such period. |
| `schedule72.preFirstAlignedFiscalPeriodSuspension` | array \| boolean \| null \| number \| object \| string |  | s.34.2(9): TY preceding first aligned FY end — subsection (2) suspended; catch-up flows through (b)(i)/(b)(ii) in alignment year. |
| `schedule72.returnFiledOnOrBeforeFilingDueDate` | array \| boolean \| null \| number \| object \| string |  | Whether the return carrying the adjusted stub period accrual designations was, or will be, filed on or before the corporation's filing-due date. The ITA s.34.2(1) descriptions of E and F define both subtrahends only to the extent designated in a return filed on or before that date, so a late return leaves the whole gross accrual in income. Send returnFilingDate instead where the actual date is known; the two are reconciled and a disagreement blocks. Unanswered is neither timely nor late and holds the designations. Booleans, the numbers 0 and 1, and the strings true, yes, y, 1, false, no, n and 0 are all accepted. |
| `schedule72.returnFilingDate` | null \| string |  | The date the return carrying the ITA s.34.2(1) E and F designations was filed, in ISO YYYY-MM-DD form. It governs over the returnFiledOnOrBeforeFilingDueDate attestation: the engine compares it against the s.150(1)(a) filing-due date it derives itself. A value that is not a YYYY-MM-DD date, or one that cannot be tested because the filing-due date is unknown, leaves timeliness unresolved rather than timely. |
| `schedule72.stickyMultiTierAfterStructureFlattens` | array \| boolean \| null \| number \| object \| string |  | Form-face verbatim rule: corp stays on S72 after multi-tier structure flattens. Overrides isSingleTierPartnership. |
| `schedule72.wasOpenedFromDesignatedMemberFlow` | array \| boolean \| null \| number \| object \| string |  | Disambiguation: opened from S7 "designated member" flow? Surfaces an info advisory since "designated member" is a s.125(7) SBD concept, NOT an s.34.2 ASPA concept. |
| `schedule72.wasSubjectToMultiTierAlignment` | array \| boolean \| null \| number \| object \| string |  | s.249.1(9)/(11): partnership was/is subject to a multi-tier alignment election. |
| `schedule73` | null \| object |  | Schedule 73 income-inclusion summary for corporations that are members of partnerships, including partnership rows and priorYearS73Partnerships. Opening it computes Schedule 71 and Schedule 72 dependencies before feeding Schedule 1 lines 130/131 and Schedule 6 lines 899/901. If omitted, only an independent filing trigger activates the form; omission does not establish a nil prior-year inclusion. |
| `schedule73.characterSplitOverrides` | object |  | Manual character-split override (null = use the engine's auto split). |
| `schedule73.characterSplitOverrides.activeBusinessIncome` | null \| number \| string |  | Line 270 — total active business income (can be negative). |
| `schedule73.characterSplitOverrides.allowableCapitalLoss` | null \| number \| string |  | Line 285 — total allowable capital loss (non-negative; → S6 line 901). |
| `schedule73.characterSplitOverrides.otherIncome` | null \| number \| string |  | Line 290 — total other income (can be negative). |
| `schedule73.characterSplitOverrides.propertyIncome` | null \| number \| string |  | Line 280 — total property income (can be negative). |
| `schedule73.characterSplitOverrides.taxableCapitalGain` | null \| number \| string |  | Line 275 — total taxable capital gain (non-negative; → S6 line 899). |
| `schedule73.partnerships` | array \| null |  | Standalone rows or same-identity assertions (empty in the normal flow). |
| `schedule73.partnerships[]` | object |  |  |
| `schedule73.partnerships[].characterOrdinary` | null \| number \| string |  | The s.34.2(5)(a)(i) ordinary (non-capital) character of this row's column 4 — the total the three component cells below must exhaust across lines 270 / 280 / 290. It has no printed per-row box of its own. null is NOT STATED rather than nil: state it with none of the three components and the row's non-capital column 4 is withheld from those lines instead of defaulting onto line 270 as active business income. Send all three components with it — a partial split overstates line 270. |
| `schedule73.partnerships[].characterTCG` | null \| number \| string |  | The s.34.2(5)(a)(i) taxable-capital-gain share of this row's column 4 (line 275 → S6 line 899), not column 6's — send column 6's share as `col6CharacterTCG`. Line 275 must be non-negative. null is NOT STATED and no other cell can state this gain, but unlike the ordinary side it is never withheld: line 275 carries the share even while the row's ordinary split is unknown. |
| `schedule73.partnerships[].col10_threshold` | null \| number \| string |  | Column 10 (box 310) — threshold amount (4W). |
| `schedule73.partnerships[].col1_stubAccrual` | null \| number \| string |  | Column 1 (box 200) — stub period accrual (S71/S72 amount 2I). |
| `schedule73.partnerships[].col2_designatedQRE` | null \| number \| string |  | Column 2 (box 205) — designated qualified resource expenses (2J). |
| `schedule73.partnerships[].col3_discretionary` | null \| number \| string |  | Column 3 (box 210) — discretionary amount designated (2K). |
| `schedule73.partnerships[].col4CharacterActiveBusiness` | null \| number \| string |  | The s.34.2(5)(a)(i) active-business component of this row's column 4 (line 270 share). No printed per-row box. null is NOT STATED, not zero: a row carrying non-capital column-4 inclusion with no split behind it blocks at error severity and its amount is withheld from lines 270 / 280 / 290 rather than defaulted onto line 270 as active business income. |
| `schedule73.partnerships[].col4CharacterForeignActiveBusiness` | null \| number \| string |  |  |
| `schedule73.partnerships[].col4CharacterForeignProperty` | null \| number \| string |  |  |
| `schedule73.partnerships[].col4CharacterOther` | null \| number \| string |  | s.34.2(5)(a)(i) character of column 4 — other-income component (line 290 share; engine key `col4CharacterOther`). null = not stated, not zero. The three components must exhaust the row's non-capital column 4; the lines 270+275+280-285+290 tie-out enforces that. |
| `schedule73.partnerships[].col4CharacterProperty` | null \| number \| string |  | s.34.2(5)(a)(i) character of column 4 — property component (line 280 share; engine key `col4CharacterProperty`). null = not stated, not zero. |
| `schedule73.partnerships[].col6CharacterActiveBusiness` | null \| number \| string |  | s.34.2(5)(a)(ii) character of column 6: active-business component (line 270 share). null is not stated, not zero. |
| `schedule73.partnerships[].col6CharacterForeignActiveBusiness` | null \| number \| string |  |  |
| `schedule73.partnerships[].col6CharacterForeignProperty` | null \| number \| string |  |  |
| `schedule73.partnerships[].col6CharacterOther` | null \| number \| string |  | s.34.2(5)(a)(ii) character of column 6: other-income component (line 290 share). The four components must exhaust column 6. |
| `schedule73.partnerships[].col6CharacterProperty` | null \| number \| string |  | s.34.2(5)(a)(ii) character of column 6: property-income component (line 280 share). null is not stated, not zero. |
| `schedule73.partnerships[].col6CharacterTCG` | null \| number \| string |  | s.34.2(5)(a)(ii) character of column 6: taxable-capital-gain component (line 275 share). null is not stated, not zero. |
| `schedule73.partnerships[].col6_newMember` | null \| number \| string |  | Column 6 (box 225) — income inclusion for a new corporate member (3E). |
| `schedule73.partnerships[].col9_shortfall` | null \| number \| string |  | Column 9 (box 300) — income shortfall adjustment (4T). |
| `schedule73.partnerships[].fiscalPeriodEnd` | array \| boolean \| null \| number \| object \| string |  | Box 140 — fiscal period-end (YYYY-MM-DD). |
| `schedule73.partnerships[].fiscalPeriodStart` | array \| boolean \| null \| number \| object \| string |  | Box 130 — fiscal period-start (YYYY-MM-DD). |
| `schedule73.partnerships[].id` | null \| string |  | Stable row identity for retaining the current partnership row through edits and row reordering. |
| `schedule73.partnerships[].multiTierFlag` | array \| boolean \| null \| number \| object \| string |  | Box 150 — part of a multi-tiered structure: 1 = yes, 2 = no. |
| `schedule73.partnerships[].partnershipBN` | array \| boolean \| null \| number \| object \| string |  | Box 100 — partnership account number (9-digit BN / 15-char RZ / 'NR'). 'NR' is not unique; same-year matching also requires name, dates, and tier. |
| `schedule73.partnerships[].partnershipName` | array \| boolean \| null \| number \| object \| string |  | Box 110 — partnership's name. |
| `schedule73.priorYearS73Partnerships` | array \| boolean \| null \| number \| object \| string |  | The prior year's Schedule 73 per-partnership rows that feed column 5 and column 7 for the ITA s.34.2(4) reversal. Send an empty array as the reviewed no-prior-year-partnerships answer, because omitting it blocks. |
| `schedule73.priorYearS73Partnerships[]` | array \| boolean \| null \| number \| object \| string |  | The prior year's Schedule 73 per-partnership rows that feed column 5 and column 7 for the ITA s.34.2(4) reversal. Send an empty array as the reviewed no-prior-year-partnerships answer, because omitting it blocks. |
| `schedule78` | null \| object |  |  |
| `schedule8` | array \| boolean \| null \| number \| object \| string |  | The target's own input blob. Omit it or send null when the form was not opened: the batch asks for it to decide whether you supplied any input for the form before it applies prior-filed continuity, and an unopened form is never read as a form full of zeros. |
| `schedule89` | null \| object |  | Schedule 89 capital dividend account verification data, including filingCorpRows, predecessorRows and life-insurance policy details. The engine reconciles declared life-insurance proceeds with the canonical CDA calculation and reads successor continuity rows. Omission supplies neither those assertions nor predecessor continuity rows. |
| `schedule89.filingCorpRows` | array \| null |  |  |
| `schedule89.filingCorpRows[]` | object |  |  |
| `schedule89.lifeInsurancePolicy1` | null \| object |  |  |
| `schedule89.lifeInsurancePolicy2` | null \| object |  |  |
| `schedule89.predecessorRows` | array \| null |  |  |
| `schedule89.predecessorRows[]` | object |  |  |
| `schedule8AdjustmentCoverage` | array \| boolean \| null \| number \| object \| string |  | Applicable Schedule 8 statutory coverage and adjustment answers. |
| `schedule9` | null \| object |  | Schedule 9 related and associated corporations data. In the absence of an explicit association answer or other association evidence, its supported computed association finding can answer the Schedule 510 association question. Omission supplies no Schedule 9 fallback and does not itself establish that the corporation is unassociated. |
| `schedule9.rows` | array \| null |  | The printed form has 14 rows. Empty rows are no-ops. Filemark keeps row 15 and beyond; the `taxcycle` export carries them, and the generated package and the `taxprep` and `ifirm` exports stay blocked because the form prescribes no overflow carrier. |
| `schedule9.rows[]` | object |  |  |
| `schedule92` | null \| object |  |  |
| `suspendedLossRevivals` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 suspended-loss revival rows, carrying amount, suspension and property identifiers, revival event and date, and active-asset and foreign-source facts. Omission or null uses revivals from the suspended-loss continuity workpaper when available, otherwise no rows. Non-empty competing sources are rejected. |
| `suspendedLossRevivals[]` | array \| boolean \| null \| number \| object \| string |  | Schedule 6 suspended-loss revival rows, carrying amount, suspension and property identifiers, revival event and date, and active-asset and foreign-source facts. Omission or null uses revivals from the suspended-loss continuity workpaper when available, otherwise no rows. Non-empty competing sources are rejected. |
| `t2Jacket` | null \| object |  | T2 jacket identification, filing-status, applicability and other answers used by the batch computation. In a saved-engagement scenario the answers merge into the saved jacket leaf by leaf: a section or box the scenario does not name keeps its saved answer (the imported boxes 070, 071 and 080 included), and an explicit null clears that one box. A section the saved jacket holds is sent as an object; null or any other value in its place is refused. |
| `t2Jacket.additionalInfo` | null \| object |  |  |
| `t2Jacket.additionalInfo.financialIntermediaryStatus` | null \| object |  | The ITA 191(1) financial-intermediary status packet, read at every Part IV.1 dividend receipt time. Paragraph (c) of the ITA 187.1 excepted-dividend definition takes a dividend received by a private corporation or a financial intermediary corporation out of Part IV.1, so this packet and the T2 box 040 corporation type together decide whether the Part 4 charge applies at all. |
| `t2Jacket.additionalInfo.financialIntermediaryStatus.paragraphGPrescribedCorporationExclusionAtAnyReceiptTime` | boolean \| null |  | ITA 191(1)(g): whether the corporation was a prescribed corporation at any Part IV.1 dividend receipt time. Any of the three exclusion answers left unanswered blocks the financial-intermediary conclusion. |
| `t2Jacket.additionalInfo.financialIntermediaryStatus.paragraphHControlExclusionAtAnyReceiptTime` | boolean \| null |  | ITA 191(1)(h): whether the control exclusion applied at any Part IV.1 dividend receipt time. |
| `t2Jacket.additionalInfo.financialIntermediaryStatus.paragraphISubstantialInterestExclusionAtAnyReceiptTime` | boolean \| null |  | ITA 191(1)(i): whether the substantial-interest exclusion applied at any Part IV.1 dividend receipt time. |
| `t2Jacket.additionalInfo.financialIntermediaryStatus.qualifyingCategoryAtEveryPart4DividendReceiptTime` | null \| string |  | The ITA 191(1)(a) to (f) category that held at every Part IV.1 dividend receipt time, or not_at_every_receipt_time where none did. An unanswered category leaves the recipient status unresolved and the Part IV.1 scope blocked. |
| `t2Jacket.additionalInfo.isCreditUnion` | boolean \| null |  | The corporation is a credit union; a legal-status fact the GRIP and LRIP dividend-pool resolution requires beyond the T2 corporation-type code. |
| `t2Jacket.additionalInfo.isDepositInsuranceCorporation` | boolean \| null |  | The corporation is a deposit insurance corporation; a legal-status fact the GRIP and LRIP dividend-pool resolution requires beyond the T2 corporation-type code. |
| `t2Jacket.additionalInfo.isExemptUnderSection186_1` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.isExemptUnderSection186_1BiiOrVii` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.isLifeInsurer` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.isPrescribedVentureCapitalCorporation` | boolean \| null |  | Whether the corporation was a prescribed venture capital corporation throughout the year. A dividend received from a prescribed qualifying corporation is then not a taxable dividend for Part IV, so it stays out of the Schedule 3 Part IV base (ITA 186.2, Regulation 6700). Null is unanswered. |
| `t2Jacket.additionalInfo.isSpecifiedFinancialInstitution` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.isSubjectCorporation` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.notExcludedCorporationTypeThroughoutYear` | boolean \| null |  | The jacket's corporation-type status answer, cross-checked against the financial-intermediary category so the two internal status answers cannot disagree. A true answer beside an investment, mortgage-investment, mutual-fund or prescribed-LSVCC category is a conflict the engine refuses to resolve for you. |
| `t2Jacket.additionalInfo.partXII4CreditTotal127_41` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.additionalInfo.productsOrServices` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.additionalInfo.section89_11ElectionInForceForTaxYear` | boolean \| null |  | An ITA s.89(11) election not to be treated as a CCPC is in force for the taxation year; the continuing election state, distinct from the box 266 and 267 filing events. |
| `t2Jacket.additionalInfo.section89_11PriorRevocationExists` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.section89_13MinisterialConsentConfirmed` | boolean \| null |  |  |
| `t2Jacket.additionalInfo.section89_13MinisterialConsentEvidence` | null \| string |  |  |
| `t2Jacket.additionalInfo.section94_1OffshoreInvestmentFundPropertyApplies` | array \| boolean \| null \| number \| object \| string |  | Whether ITA 94.1 applies to offshore investment fund property the corporation held in the year, Yes or No. The T2 jacket asks it whenever line 259 (specified foreign property over CAN$100,000) is Yes or Schedule 21 reports foreign income, and holds the return until it is answered; a Yes needs the offshore investment fund property ledger, whose imputed income Schedule 1 adds. |
| `t2Jacket.additionalInfo.substantiveCCPCAnytime` | boolean \| null |  | T2 box 290: the corporation was a substantive CCPC (ITA s.248(1)) at any time in the taxation year; routes the general rate reduction worksheet and the dividend-pool regime. |
| `t2Jacket.addresses` | null \| object |  |  |
| `t2Jacket.addresses.headOffice` | null \| object |  |  |
| `t2Jacket.applicability` | null \| object |  |  |
| `t2Jacket.applicability.airQualityImprovementTaxCredit` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.associatedCCPC` | boolean \| null |  | T2 box 160: whether the corporation was associated with one or more other taxable Canadian corporations in the tax year. ITA 191.1(2) makes an associated corporation's Part VI.1 dividend allowance nil unless a subsection 191.1(3) agreement allocates it, so Schedule 43 withholds line 210 until this is answered. Null leaves it unanswered, which holds rather than assuming either answer. |
| `t2Jacket.applicability.cdnFilmVideoTC` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.controlledForeignAffiliates` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 258 answer: the corporation owned or had an interest in a controlled foreign affiliate. |
| `t2Jacket.applicability.dividendsReceivedOrPaid` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.eifel18_2PartyOrElection` | boolean \| null |  |  |
| `t2Jacket.applicability.eligibleCapitalProperty` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 210 answer: the corporation had eligible capital property, which Schedule 10 continued before 2017. |
| `t2Jacket.applicability.equityBuybackPartII2` | boolean \| null |  | T2 jacket applicability answer: the corporation had equity repurchases within Part II.2 (ITA s.183.3), so Schedule 56 applies. |
| `t2Jacket.applicability.fiRelatedGroupGrossPartVI` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.filmVideoServicesTC` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.foreignAffiliatesOwned` | boolean \| null |  |  |
| `t2Jacket.applicability.foreignAffiliatesT1134` | boolean \| null |  |  |
| `t2Jacket.applicability.fuelChargeFarmersTC` | boolean \| null |  |  |
| `t2Jacket.applicability.gripChangeOrEligDiv` | boolean \| null |  | T2 jacket applicability answer: the general rate income pool (ITA s.89(1)) changed in the year or an eligible dividend was paid or received, so Schedule 53 applies. |
| `t2Jacket.applicability.lripChangeOrEligDiv` | boolean \| null |  | T2 jacket applicability answer: the low rate income pool (ITA s.89(1)) changed in the year or an eligible dividend was paid or received, so Schedule 54 applies. |
| `t2Jacket.applicability.nalNROver1M` | boolean \| null |  |  |
| `t2Jacket.applicability.nonArmsLengthNonResidentTransactions` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 171 answer: the corporation had non-arm's length transactions with non-residents. |
| `t2Jacket.applicability.nonControlledForeignAffiliates` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 256 answer: the corporation owned or had an interest in a non-controlled foreign affiliate. |
| `t2Jacket.applicability.nrCarryingOnBusiness` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.nrShareholders` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 151 answer: the corporation had a non-resident shareholder. |
| `t2Jacket.applicability.nrShareholdersVoting` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partIITobaccoSurtax` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 249 answer: the corporation is liable for the Part II tobacco manufacturers' surtax, so Schedule 46 applies. |
| `t2Jacket.applicability.partIV1OrVI1Prefs` | boolean \| null |  | T2 box 243: whether the corporation paid or received dividends on taxable preferred shares or taxable RFI shares. A No answers the per-row taxable-preferred-share question for every dividend row that does not itself point at a preferred share; a Yes or a blank keeps the per-row question. The jacket reads this box permissively, and the reader's predicate is the whole domain: a boolean; 0 or 1 as an integer OR a float; or the word true or false in any mix of case with any surrounding whitespace. Everything else raises rather than answers, including "Yes", "No", "1", "0", "", 0.5, 2 and -1. |
| `t2Jacket.applicability.partVI1TransferAgreement` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partVIFICapital` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.applicability.partXIII1Tax` | boolean \| null |  |  |
| `t2Jacket.applicability.partnershipMember` | boolean \| null |  |  |
| `t2Jacket.applicability.provCreditOrMultiJurisdiction` | boolean \| null |  |  |
| `t2Jacket.applicability.section89_11Election` | boolean \| null |  |  |
| `t2Jacket.applicability.section89_11Revocation` | boolean \| null |  |  |
| `t2Jacket.applicability.soeTransactions` | boolean \| null |  |  |
| `t2Jacket.applicability.specifiedForeignPropertyOver100K` | array \| boolean \| null \| number \| object \| string |  | T2 line 259: whether the corporation owned or held specified foreign property whose total cost amount was more than CAN$100,000 at any time in the year (ITA 233.3), which makes Form T1135 due. Yes or No; a Yes also asks t2Jacket.additionalInfo.section94_1OffshoreInvestmentFundPropertyApplies, the offshore investment fund property question (ITA 94.1), and the T2 jacket is held until it is answered. |
| `t2Jacket.applicability.surtaxCredit` | array \| boolean \| null \| number \| object \| string |  | Historical T2 jacket box 237 answer: the corporation claims the unused surtax credit, so Schedule 37 applies. |
| `t2Jacket.applicability.taxableDividendsPaid` | boolean \| null |  |  |
| `t2Jacket.certification` | null \| object |  |  |
| `t2Jacket.certification.ccpcOneMonthExtension` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.filingStatus` | null \| object |  | T2 jacket filing-status answers, including the first return after incorporation, amalgamation or winding-up. |
| `t2Jacket.filingStatus.amalgamationQualifiesUnderSection87_1` | boolean \| null |  |  |
| `t2Jacket.filingStatus.aocDate` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.filingStatus.aocEffectiveDateTime` | null \| string |  | Actual local acquisition timestamp (065), required when electing out of ITA 256(9). Without the election the tax boundary is midnight; CCPC status still uses actual time. |
| `t2Jacket.filingStatus.ccpcStatusChangeCausedByAcquisitionOfControl` | boolean \| null |  | Whether the CCPC-status change was caused by an acquisition of control. True places the boundary under s.249(4) at the acquisition (s.256(9)) instead of s.249(3.1); unanswered blocks box 066. |
| `t2Jacket.filingStatus.ccpcStatusChangeEffectiveDateTime` | null \| string |  |  |
| `t2Jacket.filingStatus.firstYearAfterAmalgamation` | boolean \| null |  |  |
| `t2Jacket.filingStatus.firstYearAfterIncorporation` | boolean \| null |  |  |
| `t2Jacket.filingStatus.s249_4_bElection` | boolean \| null |  |  |
| `t2Jacket.filingStatus.section249_3_1_cElection` | boolean \| null |  |  |
| `t2Jacket.filingStatus.section256_9Election` | boolean \| null |  |  |
| `t2Jacket.filingStatus.subsidiaryWindupS88` | boolean \| null |  |  |
| `t2Jacket.identification` | null \| object |  | Corporation identification and residence information from the T2 jacket. |
| `t2Jacket.identification.businessNumber` | null \| string |  |  |
| `t2Jacket.identification.claimingTreatyExemption` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.isResidentOfCanada` | boolean \| null |  | T2 box 080: the corporation was resident in Canada in the taxation year. A no answer requires the box 081 country of residence. |
| `t2Jacket.identification.section149Exempt` | null \| number \| string |  | T2 box 085 exemption category: 1, 2 or 4 as a JSON number or its exact digit string; null leaves the category unanswered. This category does not state whether exemption began or ended at an acquisition of control. |
| `t2Jacket.identification.taxYearEnd` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.taxYearEndExclusiveAt` | null \| string |  | Exact local exclusive end of this return (061). The next return starts at the same instant; CRA HHMM reporting is a separate projection. |
| `t2Jacket.identification.taxYearStart` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.identification.taxYearStartAt` | null \| string |  | Exact local inclusive period start for an intraday return (060); dates remain the canonical civil filing dates. Preserve any supplied UTC offset. |
| `t2Jacket.identification.typeChangeEffectiveDate` | null \| string |  | Effective date of a corporation-type change during the taxation year. |
| `t2Jacket.identification.typeOfCorporation` | null \| number \| string |  | T2 box 040 corporation category: codes 1 to 5 as JSON numbers or exact digit strings; null leaves the category unanswered. |
| `t2Jacket.lines` | null \| object |  |  |
| `t2Jacket.sbdAssignment` | array \| boolean \| null \| number \| object \| string |  |  |
| `taxYear` | number \| string | always |  |
| `taxYearId` | array \| boolean \| null \| number \| object \| string |  |  |
| `unreconciledCapitalGainsDividendCount` | array \| boolean \| null \| number \| object \| string |  | Count of capital gains dividend amounts awaiting reconciliation to Schedule 6 line 875. Send a whole-number count or integer text. The engine converts it to an integer, adds unresolved counts found in workpapers and dividend rows, and raises a filing error for outstanding amounts. Omission or null contributes zero to that count. |
| `wasAssociatedInPrecedingYear` | boolean \| null |  | Whether the corporation was associated with another corporation in its preceding taxation year, selecting which ITA s.125(5.1)(a) period the taxable-capital figure belongs to and which paragraph of ITA s.157(1.3) and (1.4) the preceding year's quarterly-instalment test uses. Send null deliberately when unknown: the engine then blocks rather than inferring a period. |
| `workpapers` | array \| null \| object |  |  |
| `workpapers[]` | object |  |  |
| `workpapers[].adjustmentAmount` | array \| boolean \| null \| number \| object \| string |  | Amount of the workpaper's computed adjustment, as a number or a plain money string. |
| `workpapers[].adjustmentStatus` | array \| boolean \| null \| number \| object \| string |  | Status of the workpaper's computed adjustment. Anything other than ok raises the workpaper's findings, and null means it was never analysed and is not treated as clean. |
| `workpapers[].assumption` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].customName` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].deletedAt` | array \| boolean \| null \| number \| object \| string |  | Timestamp marking the workpaper as deleted. Any value at all takes the workpaper out of every return-level check; leave it null for a live one. |
| `workpapers[].id` | array \| boolean \| null \| number \| object \| string |  | Your identifier for this workpaper. Findings addressed to the workpaper quote it. |
| `workpapers[].kind` | array \| boolean \| null \| number \| object \| string |  |  |
| `workpapers[].linkedAccountIds` | array \| boolean \| null \| number \| object \| string |  | Identifiers of the trial-balance accounts this workpaper ties out to. Only string entries are read. |
| `workpapers[].priorYearRows` | array \| null |  | Prior-year rows for the same workpaper template. |
| `workpapers[].priorYearRows[]._rowKey` | null \| string |  |  |
| `workpapers[].rows` | array \| null |  | The workpaper's own rows. A row's columns come from its template rather than from a fixed contract, so no column below this position is a published cell. |
| `workpapers[].rows[]` | object |  |  |
| `workpapers[].rows[]._rowKey` | null \| string |  |  |
| `workpapers[].rows[].acquiredInOrdinaryCourseOfBusiness` | array \| boolean \| null \| number \| object \| string |  | Acquired in ordinary course (112(2.1))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].amountDeductibleInRelevantForeignIncome` | array \| boolean \| null \| number \| object \| string |  | Amount deductible in relevant foreign income (113(5)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerAmountCC` | array \| boolean \| null \| number \| object \| string |  | Connected payer — amount CC (T2 page 7). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerAmountII` | array \| boolean \| null \| number \| object \| string |  | Connected payer — amount II (T2 page 7). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerLine465` | array \| boolean \| null \| number \| object \| string |  | Connected payer — line 465 (eligible dividends paid). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerLine470` | array \| boolean \| null \| number \| object \| string |  | Connected payer — line 470 (non-eligible dividends paid). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].connPayerTotalTaxableWhilePrivateOrSubject` | array \| boolean \| null \| number \| object \| string |  | Payer taxable dividends paid while private/subject (186(1)(b) denominator). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].date` | array \| boolean \| null \| number \| object \| string |  | Date. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].designatedInWritingAtPaymentTime` | array \| boolean \| null \| number \| object \| string |  | Written eligible designation at payment?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].designationDate` | array \| boolean \| null \| number \| object \| string |  | Eligible designation date. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].exemptDividend186_2` | array \| boolean \| null \| number \| object \| string |  | 186.2 exempt (prescribed VCC)?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].exemptSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Exempt-surplus portion (113(1)(a)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridForeignTaxPrescribed` | array \| boolean \| null \| number \| object \| string |  | Foreign tax prescribed — hybrid portion (113(1)(a.1)(ii)(A)(I)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridNonBusinessIncomeTax` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax — hybrid portion (113(1)(a.1)(ii)(A)(II)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].hybridSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Hybrid-surplus portion (113(1)(a.1)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].lateDesignationErdtohTransitional` | array \| boolean \| null \| number \| object \| string |  | s.89(14.2) ERDTOH transition applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].nonBusinessIncomeTaxOnDeemedNonDividend` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax on 113(5) amount (113(6)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].originalDividendId` | array \| boolean \| null \| number \| object \| string |  | Original dividend ID (Schedule 55 election). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].paragraphCAntiAvoidanceApplies` | array \| boolean \| null \| number \| object \| string |  | s.89(1) paragraph (c) applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].payerCarriedBusinessThroughCanadianPeThroughoutStatutoryPeriod` | array \| boolean \| null \| number \| object \| string |  | Canadian PE Throughout 112(2) Period?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerContinuousPeEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | Continuous-PE Evidence / Source. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerHypotheticalResidentTaxableIncomePriorYear` | array \| boolean \| null \| number \| object \| string |  | Payer prior-year taxable income if resident throughout year (112(2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerIsForeignAffiliate` | array \| boolean \| null \| number \| object \| string |  | Payer is Foreign Affiliate?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerReg8201FactsAtReceipt` | array \| boolean \| null \| number \| object \| string |  | The payer's Reg 8201 permanent-establishment facts as they stood when the dividend was received. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].payerReg8201Reviews` | array \| boolean \| null \| number \| object \| string |  | Reg 8201 permanent-establishment reviews for the payer, each stamped with the timing it applies to; the receipt-timed review is used when no facts block is sent. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].payerTaxableIncomeEarnedInCanadaPriorYear` | array \| boolean \| null \| number \| object \| string |  | Payer prior-year taxable income earned in Canada (112(2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerTaxableUnderSubsection2_3` | array \| boolean \| null \| number \| object \| string |  | Payer Taxable under 2(3)?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].payerWasPrivateOrSubjectWhenPaid` | array \| boolean \| null \| number \| object \| string |  | Payer private/subject when paid (186(1)(b))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].paymentTimeGroupId` | array \| boolean \| null \| number \| object \| string |  | Payment-time group. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].preAcquisitionSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Pre-acquisition-surplus portion (113(1)(d)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].privateCorporationImmediatelyBeforePayment` | array \| boolean \| null \| number \| object \| string |  | Private immediately before payment (s.185.1(2))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].privateCorporationWhenPaid` | array \| boolean \| null \| number \| object \| string |  | Private corporation at payment (s.129(1))?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].refundExclusion129_1_2` | array \| boolean \| null \| number \| object \| string |  | Paid dividend excluded, line 530 (s.129(1.2)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].refundExclusionBankruptController` | array \| boolean \| null \| number \| object \| string |  | Paid to bankrupt controller, line 540 (s.129(1.1)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. |
| `workpapers[].rows[].s126_4TaxCreditGeneratorApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4) foreign-tax-credit generator applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_11PartnershipMismatchApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.11) partnership mismatch applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_1NoEconomicProfitApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.1) no-economic-profit exclusion applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_2ShortTermSecurityCapApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.2) short-term-security cap applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s126_4_3ShortTermSecurityCapExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | s.126(4.3) exception to short-term-security cap applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55CapitalGainIsForeignSource` | array \| boolean \| null \| number \| object \| string |  | s.55 deemed gain foreign-source?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55DividendArisesOnRedemption` | array \| boolean \| null \| number \| object \| string |  | Dividend arises on s.84(2)/(3) redemption?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | Part IV tax/refund evidence reference. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVTaxPayableForDividend` | array \| boolean \| null \| number \| object \| string |  | Part IV tax payable for dividend. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PartIVTaxRefundedInSeries` | array \| boolean \| null \| number \| object \| string |  | Part IV tax refunded in series. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55PurposeOrResultTestMet` | array \| boolean \| null \| number \| object \| string |  | s.55(2.1)(b) purpose/result test met?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55SafeIncomeAttributable` | array \| boolean \| null \| number \| object \| string |  | Safe income attributable to share. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55ShareDispositionPropertyId` | array \| boolean \| null \| number \| object \| string |  | Linked share disposition property ID. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55TransactionOrSeries` | array \| boolean \| null \| number \| object \| string |  | Whether the dividend was received as part of a transaction or series under ITA 55(2). Answer true/false or Yes/No; null is UNANSWERED and is never read as no. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].s55UnrefundedPartIVProtectedExcessPortion` | array \| boolean \| null \| number \| object \| string |  | Excess-dividend portion protected by unrefunded Part IV. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionApplies` | array \| boolean \| null \| number \| object \| string |  | s.55(3) exception applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionEvidenceReference` | array \| boolean \| null \| number \| object \| string |  | s.55(3) evidence reference. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s55_3ExceptionParagraph` | array \| boolean \| null \| number \| object \| string |  | s.55(3) exception paragraph. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. The template offers 55(3)(a), 55(3)(b). The engine matches the paragraph exactly, including case, and blocks the row when it does not match, so a differently-cased answer is refused rather than misread. |
| `workpapers[].rows[].s83_2_2Or2_3Or2_4ReliefApplies` | array \| boolean \| null \| number \| object \| string |  | s.83(2.2)-(2.4) relief applies?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s89_14_1ReliefGranted` | array \| boolean \| null \| number \| object \| string |  | Minister granted late-designation relief?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the deemed-dividends, dividends, dividends-declared workpaper templates. The template offers No, Yes. The published contract states the type rather than the template's picklist. |
| `workpapers[].rows[].s93_4_3_cClause113_1_c_i_AAmount` | array \| boolean \| null \| number \| object \| string |  | Clause 113(1)(c)(i)(A) amount for the 93.4(3)(c) low-RTF amount. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].s93_4_3_cLowRtfDeduction` | array \| boolean \| null \| number \| object \| string |  | Low-RTF deduction determined under 93.4(3)(c). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].section113_2Deduction` | array \| boolean \| null \| number \| object \| string |  | ITA 113(2) deduction claimed against this dividend out of the pre-acquisition surplus adjustment. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].section113_2HistoricCapacity` | array \| boolean \| null \| number \| object \| string |  | Historic ITA 113(2) deduction capacity available to this dividend. Practitioner-asserted operand carried verbatim from the workpaper row. |
| `workpapers[].rows[].shareType` | array \| boolean \| null \| number \| object \| string |  | Share Type. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].sharesAcquiredForDividendPurpose` | array \| boolean \| null \| number \| object \| string |  | Share acquired to receive this capital dividend?. Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableForeignTaxPrescribed` | array \| boolean \| null \| number \| object \| string |  | Foreign tax prescribed — taxable portion (113(1)(b)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableNonBusinessIncomeTax` | array \| boolean \| null \| number \| object \| string |  | Non-business-income tax — taxable portion (113(1)(c)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].rows[].taxableSurplusPortion` | array \| boolean \| null \| number \| object \| string |  | Taxable-surplus portion (113(1)(b)/(c)). Practitioner-asserted operand carried verbatim from the workpaper row. Declared by the dividends workpaper template. |
| `workpapers[].schedule3CoverageReview` | array \| boolean \| null \| number \| object \| string |  | The Schedule 3 dividend coverage review packet, carried on the dividends workpaper only. A transported copy that disagrees with it is refused rather than silently preferred. |
| `workpapers[].sectionRows` | null \| object |  |  |
| `workpapers[].templateId` | null \| string |  | Which workpaper template this is. It selects the stored-row read contract, so a row column is read only where its template declares it. |

### Strict profile accepted values (541 of 1773 cells)

These constraints apply when you supply this target's `payloadContract`. Cells marked **pinned** must equal the listed value. A pinned cell that is not required may be left out.

| Cell | Accepted values |
| --- | --- |
| `allocations[].foreignCountryDetails[].allocatedTaxableIncome` | `-1000000000000000 to 1000000000000000` |
| `allocations[].foreignCountryDetails[].grossRevenue` | `-1000000000000000 to 1000000000000000` |
| `allocations[].foreignCountryDetails[].revenueReclass` | `-1000000000000000 to 1000000000000000` |
| `allocations[].foreignCountryDetails[].totalSalariesWages` | `-1000000000000000 to 1000000000000000` |
| `allocations[].grossRevenue` | `-1000000000000000 to 1000000000000000` |
| `allocations[].outsourcedServiceFees` | `-1000000000000000 to 1000000000000000` |
| `allocations[].reg402_1DeemedSalary` | `-1000000000000000 to 1000000000000000` |
| `allocations[].reg402_1SalaryDeduction` | `-1000000000000000 to 1000000000000000` |
| `allocations[].reg402_4_1ThrowbackRevenue` | `-1000000000000000 to 1000000000000000` |
| `allocations[].revenueReclass` | `-1000000000000000 to 1000000000000000` |
| `allocations[].totalSalariesWages` | `-1000000000000000 to 1000000000000000` |
| `aocAdventureTradeInventory[].cost` | `-1000000000000000 to 1000000000000000` |
| `aocAdventureTradeInventory[].fmv` | `-1000000000000000 to 1000000000000000` |
| `aocDesignatedProperty111_4_e[].acb` | `-1000000000000000 to 1000000000000000` |
| `aocDesignatedProperty111_4_e[].designated_proceeds` | `-1000000000000000 to 1000000000000000` |
| `aocDesignatedProperty111_4_e[].fmv` | `-1000000000000000 to 1000000000000000` |
| `aocDoubtfulDebtReserves111_5_3[].debt_amount` | `-1000000000000000 to 1000000000000000` |
| `aocDoubtfulDebtReserves111_5_3[].doubtful_debt_reserve_20_1_l` | `-1000000000000000 to 1000000000000000` |
| `aocNondepreciableCapitalProperties[].acb` | `-1000000000000000 to 1000000000000000` |
| `aocNondepreciableCapitalProperties[].fmv` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].designatedAmount` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].fmv` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].subsection111_5_1WouldApply` | `one of false, true` |
| `assetData[].additionCohorts[].additions` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].affiliatedStopLossDeemedProceeds` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].aggregateCostOfAdditionsAndAlterationsToBuilding` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].amount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].aocCapitalCostOfClass` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].aocDesignatedProceeds` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].aocFmvOfClass` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].assetCount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].bookCostRemovalSigned` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].canadianFilmProductionIncomeBeforeCca` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].canadianVesselCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].capitalCostOfBuildingAndAdditionsInClasses3_6_20` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].class12CostPerItem` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].class3Or6OverflowClassOpeningUcc` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].class44CumulativeUseDeterminedCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].class44UseDeterminedCapitalCostInYear` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].class6ParagraphKClass1OpeningUcc` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].closingCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].disposedPropertyDeemed13_40Amount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].disposedPropertyOriginalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].disposedPropertyRolloverTransferorDeemedCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].dispositionOutlaysAndExpenses` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].eligibleGreenhousePreNovember4_2025UndeductedCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].eligibleLiquefactionActivitiesIncomeBeforeCca` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].evChargingStationContinuousPowerKw` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].incorporationCostExcessAddition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].mineOrdinaryCcaAllocation` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].minimumContinuousPowerKwOfServedEvChargingStations` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].nonArmsLengthTransferorCostAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].nonArmsLengthVehicleFairMarketValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].nonRecoverableSalesTaxOnPrescribedLimit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].openingCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].openingUCC` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].passengerVehicleCostToTaxpayer` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].postNovember20_2018DeemedDeductionAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].postTwentyTwentyFourDeemedDeductionAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].preApril19_2021ExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].preNovember21_2018ExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].preTwentyTwentyFiveExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].prescribedVehicleCapitalCostLimit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].proceedsOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].reg1100_0_3And2_02ExcludedExpenditureOverlapAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].reg1102_14TransferorClass41UccImmediatelyBeforeDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].reg1102_14TransferorClass41UccReductionOnDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceHypotheticalOpeningUccWithoutEnhancement` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceMostRecentRatePerUnit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceOriginalQuantity` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourcePartUccBeforeAllowance` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourcePriorSurveyCruiseMapDeductions` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceQuantityAtStart` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceQuantityCutOrMined` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceResidualValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceSaleProceedsForSection4Election` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].resourceSurveyCruiseMapCosts` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].s247CapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].section110_6_21CapitalCostReduction` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].section13_21_1BuildingCostAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].section13_21_1BuildingFairMarketValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].taxUccReductionOnDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].transferorCapitalCostImmediatelyBefore` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].transferorProceedsOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additionCohorts[].transferorSection110_6Deductions` | `-1000000000000000 to 1000000000000000` |
| `assetData[].additions` | `-1000000000000000 to 1000000000000000` |
| `assetData[].affiliatedStopLossDeemedProceeds` | `-1000000000000000 to 1000000000000000` |
| `assetData[].aggregateCostOfAdditionsAndAlterationsToBuilding` | `-1000000000000000 to 1000000000000000` |
| `assetData[].aocCapitalCostOfClass` | `-1000000000000000 to 1000000000000000` |
| `assetData[].aocDesignatedProceeds` | `-1000000000000000 to 1000000000000000` |
| `assetData[].aocFmvOfClass` | `-1000000000000000 to 1000000000000000` |
| `assetData[].assetCount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].bookCostRemovalSigned` | `-1000000000000000 to 1000000000000000` |
| `assetData[].canadianFilmProductionIncomeBeforeCca` | `-1000000000000000 to 1000000000000000` |
| `assetData[].canadianVesselCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].capitalCostOfBuildingAndAdditionsInClasses3_6_20` | `-1000000000000000 to 1000000000000000` |
| `assetData[].class12CostPerItem` | `-1000000000000000 to 1000000000000000` |
| `assetData[].class3Or6OverflowClassOpeningUcc` | `-1000000000000000 to 1000000000000000` |
| `assetData[].class44CumulativeUseDeterminedCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].class44UseDeterminedCapitalCostInYear` | `-1000000000000000 to 1000000000000000` |
| `assetData[].class6ParagraphKClass1OpeningUcc` | `-1000000000000000 to 1000000000000000` |
| `assetData[].closingCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].disposedPropertyDeemed13_40Amount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].disposedPropertyOriginalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].disposedPropertyRolloverTransferorDeemedCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].dispositionOutlaysAndExpenses` | `-1000000000000000 to 1000000000000000` |
| `assetData[].eligibleGreenhousePreNovember4_2025UndeductedCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].eligibleLiquefactionActivitiesIncomeBeforeCca` | `-1000000000000000 to 1000000000000000` |
| `assetData[].evChargingStationContinuousPowerKw` | `-1000000000000000 to 1000000000000000` |
| `assetData[].firstRenewalYears` | `-1000000000000000 to 1000000000000000` |
| `assetData[].incorporationCostExcessAddition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].leaseTermYears` | `-1000000000000000 to 1000000000000000` |
| `assetData[].mineOrdinaryCcaAllocation` | `-1000000000000000 to 1000000000000000` |
| `assetData[].minimumContinuousPowerKwOfServedEvChargingStations` | `-1000000000000000 to 1000000000000000` |
| `assetData[].nonArmsLengthTransferorCostAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].nonArmsLengthVehicleFairMarketValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].nonRecoverableSalesTaxOnPrescribedLimit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].openingCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].openingUCC` | `-1000000000000000 to 1000000000000000` |
| `assetData[].passengerVehicleCostToTaxpayer` | `-1000000000000000 to 1000000000000000` |
| `assetData[].postNovember20_2018DeemedDeductionAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].postTwentyTwentyFourDeemedDeductionAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].preApril19_2021ExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].preNovember21_2018ExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].preTwentyTwentyFiveExpenditureAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].prescribedVehicleCapitalCostLimit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].proceedsOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].reg1100_0_3And2_02ExcludedExpenditureOverlapAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].reg1102_14TransferorClass41UccImmediatelyBeforeDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].reg1102_14TransferorClass41UccReductionOnDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceHypotheticalOpeningUccWithoutEnhancement` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceMostRecentRatePerUnit` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceOriginalQuantity` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourcePartUccBeforeAllowance` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourcePriorSurveyCruiseMapDeductions` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceQuantityAtStart` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceQuantityCutOrMined` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceResidualValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceSaleProceedsForSection4Election` | `-1000000000000000 to 1000000000000000` |
| `assetData[].resourceSurveyCruiseMapCosts` | `-1000000000000000 to 1000000000000000` |
| `assetData[].s247CapitalCost` | `-1000000000000000 to 1000000000000000` |
| `assetData[].section110_6_21CapitalCostReduction` | `-1000000000000000 to 1000000000000000` |
| `assetData[].section13_21_1BuildingCostAmount` | `-1000000000000000 to 1000000000000000` |
| `assetData[].section13_21_1BuildingFairMarketValue` | `-1000000000000000 to 1000000000000000` |
| `assetData[].taxUccReductionOnDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].transferorCapitalCostImmediatelyBefore` | `-1000000000000000 to 1000000000000000` |
| `assetData[].transferorProceedsOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `assetData[].transferorSection110_6Deductions` | `-1000000000000000 to 1000000000000000` |
| `daysInYear` | `-1000000000000000 to 1000000000000000` |
| `dispositions[]._rowKey` | `0 to 20000 characters` |
| `dispositions[].acb` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].acquisitionWithin61DaysWasRightToAcquireOnly` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].affiliatedAcquisitionWithin61Days` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].affiliatedOwnershipAtEndOfPeriod` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].allSharesFmvAfterDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].assetClass` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].bilArmsLengthOrSubsection50_1` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].bilDebtorDealsAtArmsLength` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].bilDebtorSbcOrQualifyingFormerSbc` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].bilQualification` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].bookGainLoss` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].ccaClass` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].changeOfUseEventId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].classOfShares` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].controlledCorporationAtAnyTimeInYear` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].cusipIsin` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].dateAcquired` | `0 to 20000 characters` |
| `dispositions[].dateOfDisposition` | `0 to 20000 characters` |
| `dispositions[].debtAcquiredAsArmsLengthCapitalPropertyConsideration` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].debtAcquiredForIncomePurpose` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].description` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].disposedToDesignatedInstitution` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].dispositionReconciliationId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].distressPreferredShareIssueDate` | `0 to 20000 characters` |
| `dispositions[].faceValue` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].fairMarketValue` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].flowThroughShareClass` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].flowThroughShareExemptionThreshold` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].foreignCurrency` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].fxConverted` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].fxReviewReason` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].giftEligibleAmount` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].giftKind` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].inclusionRate` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].interveningAcbAdjustment` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].interveningAcbAdjustmentReference` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].interveningAcbAdjustmentThroughDate` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isActiveAsset` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isBusinessInvestmentLoss` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isCertifiedCulturalProperty` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isDebtOrRightToReceive` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isDepreciableProperty` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isDispositionToAffiliatedIssuer` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isDistressPreferredShare` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isExcludedGift` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isFlowThroughShareClass` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isForeignAffiliateShare` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isForeignSource` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isGiftDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isListedPersonalProperty` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isNonArmsLengthDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isOptionWithRespectToDepreciableOrRealProperty` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isPartDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isPartOfSet` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isPrescribedClassDepreciableProperty` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isPrivateFoundationDonee` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isRelatedSegregatedFundTrustInterest` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isSubsection50_2Debt` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].isTrustDispositionWithoutBeneficialOwnershipChange` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].maturityDate` | `0 to 20000 characters` |
| `dispositions[].needsFxReview` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].numberOfShares` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].obligationPayableToTransfereeImmediatelyAfterDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].outlays` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_dApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_dExemptInterest` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_e_2Applies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_e_2ReplacementObligationsFmv` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_e_2SettlementConsiderationFmv` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_e_3ForeignAffiliateExceptionApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_fApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_iApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_iAssistanceAlreadyApplied` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph40_2_iPrescribedAssistance` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].paragraph53_1_f_1AdditionsDuringControl` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].priorSubsection40_2_hLossReductions` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].proceeds` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].propertyGroupId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].propertyId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].propertyType` | `one of null, "", "shares", "realEstate", "bonds", "other", "personalUse", "listedPersonalProperty", "businessInvestment"` |
| `dispositions[].propertyUseDeductionByTaxpayerOrNonArmsLengthPerson` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].quantity` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].reacquiredQuantity` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].reportCode` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].retainedSharesFmvAfterDisposition` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].rightToAcquireSubstitutedPropertyAtEndOfPeriod` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].rolloverElectionApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].sbcSharePre1972Status` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section13_21_1HistoricalNecessaryLandOwnership` | `0 to 20000 characters` |
| `dispositions[].section13_21_1LandDisposedInYearByTaxpayerOrNonArmsLengthPerson` | `0 to 20000 characters` |
| `dispositions[].section13_21_1LandFairMarketValue` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section13_21_1PriorThreeYearNonArmsLengthLandCapitalGains` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section13_5_3OptionCost` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section149PropertyId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section92_2AcbBeforeReductionCAD` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section92_2ForeignIncomeOrProfitsTaxCAD` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section92_2PreAcquisitionSurplusDividendsCAD` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].section93ElectionId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].setAcb` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossAllNewSharesAcbImmediatelyAfterExchange` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossDividendsDeducted` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossExchangedShareStatus` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossNewShareAcbImmediatelyAfterExchange` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOldShareAcbImmediatelyBeforeExchange` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOldShareDividendsDeducted` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOldShareQualifiedDividends` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOldShareQualifiedDividendsFivePercentTestAmount` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOwnedThroughout365Days` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossOwnershipPercentage` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossQualifiedDividends` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].stopLossQualifiedDividendsFivePercentTestAmount` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100ExceptionKind` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100PortionAt100Percent` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_2RequirementsMet` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3AllPartnershipPropertyFmv` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3PeReviews` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3PropertyUsedThroughCanadianPeAfter` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3PropertyUsedThroughCanadianPeBefore` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3QualifyingPropertyFmv` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection100_1_3TransfereeIs100_1_1_bNonresident` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection112_3Pre1995AgreementExceptionApplies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection112_5_5Applies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection112_5_6Applies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection39_1Exclusion` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection39_1_c_viTaxableDividends` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection40_3_3DispositionExclusion` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection46_4Applies` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection46_4GainLossWithoutDecrease` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].subsection85_4AcbIncrease` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].superficialLossSubstitutedPropertyAcquirer` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].superficialLossSubstitutedPropertyId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].suspensionId` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].transferorTransfereeAndDebtorRelated` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].wholePropertyAcb` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `dispositions[].yearAcquired` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `functionalCurrencyContext.firstDayRate.rate` | `-1000000000000000 to 1000000000000000` |
| `functionalCurrencyContext.firstDayRate.spotRateSource` | `one of "boc_valet", "boc_archival_manual"` |
| `postDispositionAdjustments.pools[].assetCount` | `-1000000000000000 to 1000000000000000` |
| `postDispositionAdjustments.pools[].transactions[].elementFExclusion` | `one of "none", "classExempt", "vessel", "class10_w", "class12_listed", "specifiedLeasing", "section16_1", "deemedAvailable"` |
| `postDispositionAdjustments.pools[].transactions[].kind` | `one of "assistance", "repayment"` |
| `postDispositionAdjustments.pools[].transactions[].statutoryBasis` | `one of "13(7.1)(f)", "13(7.1)(d)", "13(7.4)(b)"` |
| `priorYearS13_7_1UccReduction.byClass[].uccReduction` | `-1000000000000000 to 1000000000000000` |
| `priorYearS13_7_1UccReduction.unattributed` | `-1000000000000000 to 1000000000000000` |
| `pyUCCPools[].closingUCC` | `-1000000000000000 to 1000000000000000` |
| `schedule10.amount_7_para_14_1_b_income_inclusions` | `-1000000000000000 to 1000000000000000` |
| `schedule10.amount_8_prior_year_amount_T` | `-1000000000000000 to 1000000000000000` |
| `schedule10.amount_K_cec_balance` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_200_cec_opening_balance` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_222_ecp_acquired_before_2017` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_224_amalgamation_transfer` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_226_other_adjustments_before_2017` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_228_nal_gain_half` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_242_proceeds_disposition_before_2017` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_244_s_80_7_forgiven_debt_reduction` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_246_other_adjustments_dispositions` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_249_cec_for_disposed_business` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_250_current_year_deduction` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_300_cec_closing_balance` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_400_total_prior_cec_deductions_post_jun_1988` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_401_total_s_80_7_reductions` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_402_total_cec_deductions_pre_jul_1988` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_408_negative_balances_into_income_pre_jul_1988` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_409_subtotal` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_410_income_inclusion` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_425_prior_cec_deductions_unrecaptured` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_435_deemed_capital_cost` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_440_deemed_para_20_1_a_allowance` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_450_post_2016_acquisitions` | `-1000000000000000 to 1000000000000000` |
| `schedule10.line_460_lesser_of_12_and_13` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line008TotalOpening` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line009TotalAmalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line010TotalClosing` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line270TotalOpening` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line275TotalAmalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.line280TotalClosing` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].originalGain` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].precedingTaxationYearsEndingAfterDisposition` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].proceedsNotDueAfterYearEnd` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].proceedsOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part1CapitalGainsReserves[].yearOfDisposition` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2DoubtfulDebts.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2DoubtfulDebts.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2DoubtfulDebts.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2OtherTaxReserves.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2OtherTaxReserves.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2OtherTaxReserves.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2PrepaidRent.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2PrepaidRent.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2PrepaidRent.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2ReturnableContainers.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2ReturnableContainers.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2ReturnableContainers.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UndeliveredGoodsAndServices.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UndeliveredGoodsAndServices.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UndeliveredGoodsAndServices.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UnpaidAmounts.amalgamationTransfer` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UnpaidAmounts.closingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule13.part2UnpaidAmounts.openingBalance` | `-1000000000000000 to 1000000000000000` |
| `schedule23.calendarYear` | `-1000000000000000 to 1000000000000000` |
| `schedule23.rows[].associationCode` | `-1000000000000000 to 1000000000000000` |
| `schedule23.rows[].businessLimitAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule23.rows[].businessLimitBeforeAllocation` | `-1000000000000000 to 1000000000000000` |
| `schedule23.rows[].percentageOfBusinessLimit` | `-1000000000000000 to 1000000000000000` |
| `schedule24.operationCode` | `one of null, "01", "02", "03", "04", "05", "06", "07", "09", "10", "11", "12", "13", "14", "15", "16", "17", "99"` |
| `schedule25.affiliateRows[].controlStatus` | `-1000000000000000 to 1000000000000000` |
| `schedule25.affiliateRows[].equityPercentHeld` | `-1000000000000000 to 1000000000000000` |
| `schedule25.affiliateRows[].relatedPersonsAggregateEquityPercent` | `-1000000000000000 to 1000000000000000` |
| `schedule27.amount4BTimberLimitsAndCuttingRights` | `-1000000000000000 to 1000000000000000` |
| `schedule27.amount4CImmovableWoodAssetsClass15` | `-1000000000000000 to 1000000000000000` |
| `schedule27.amount4DIndustrialMineralMines` | `-1000000000000000 to 1000000000000000` |
| `schedule351.actualCreditReceipts[].amount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].certifiedAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].claimHistory[].assessedAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].claimHistory[].claimedAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].estimatedCreditAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].projects[].estimatedCreditAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].taxationPeriods[].certifiedAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].taxationPeriods[].estimatedCreditAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[].certifiedAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.certificates[].taxationPeriods[].projectAmounts[].estimatedCreditAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.priorCreditReceipts[].amount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].capitalMilestones[].actualCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].capitalMilestones[].months` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].capitalMilestones[].plannedCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].drivingDistanceKm` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].eligibleAreaSalary` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].eligibleRemuneration` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].governmentAssistance` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].governmentRevenueShare` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].labour[].animationSalary` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].labour[].eligibleSalary` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].marketing[].amount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].otherEffectiveClaims[].amount` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].priorMarketingClaimed` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].properties[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].properties[].certifiedCreditAllocation` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].properties[].governmentAssistance` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].properties[].nsUseFraction` | `-1000000000000000 to 1000000000000000` |
| `schedule351.projects[].totalProductionOutlays` | `-1000000000000000 to 1000000000000000` |
| `schedule38.hasAcquisitionOfControlThisYear` | `-1000000000000000 to 1000000000000000` |
| `schedule38.hasFunctionalCurrencyElectionS261` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isAuthorizedForeignBank` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isDepositTakingMortgageLender` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isHoldcoUnderS190_1_e` | `-1000000000000000 to 1000000000000000` |
| `schedule38.isTrustCorporation` | `-1000000000000000 to 1000000000000000` |
| `schedule38.relatedSolelyViaCrownControl` | `-1000000000000000 to 1000000000000000` |
| `schedule38.relatedSolelyViaS251_5_b_Right` | `-1000000000000000 to 1000000000000000` |
| `schedule38.rightAcquiredForAvoidancePurpose` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line118CalendarYearOfAgreement` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line1BPriorYearNonExcludedDividendsPaid` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line210OwnAllocation` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line220StpsDividendsPaid` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line230ElectedTpsDividendsPaid` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line240NonElectedTpsDividendsPaid` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line250TransferredInFromRelatedCorp` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line260TransferredOutToRelatedCorp` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line310TpsDividendsReceived` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line320RfiSharesDividendsReceived` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line350PortionAlsoSubjectToPartIv` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line370PortionFromConnectedCorps` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line380PartIvTaxOnLine370Dividends` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line390PortionFromNonConnectedCorps` | `-1000000000000000 to 1000000000000000` |
| `schedule43.line400EligibleTaxableDividendsFromLine390` | `-1000000000000000 to 1000000000000000` |
| `schedule43.part2Agreement.calendarYear` | `-1000000000000000 to 1000000000000000` |
| `schedule43.part2Rows[].dividendAllowanceAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule45.line105TotalPartVi1TaxTransferred` | `-1000000000000000 to 1000000000000000` |
| `schedule45.transferees[].transferredAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hadAmalgamationIn2020Or2021` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hadWindupIn2020Or2021` | `-1000000000000000 to 1000000000000000` |
| `schedule67.hasMultiple2022TaxYears` | `-1000000000000000 to 1000000000000000` |
| `schedule67.isFinancialInstitutionRelatedToBankOrLifeInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule67.isNonResident` | `-1000000000000000 to 1000000000000000` |
| `schedule67.wasBankOrLifeInsurerGroupMemberInA2021TaxYear` | `-1000000000000000 to 1000000000000000` |
| `schedule68.hasAntiAvoidanceAddbackS123_6_6` | `-1000000000000000 to 1000000000000000` |
| `schedule68.hasFunctionalCurrencyElectionS261` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isAmalgamationSuccessor` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isAmendedAgreement` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isFinancialInstitutionRelatedToBankOrLifeInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isHoldcoUnderS190_1_e` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isNonResident` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isPCInsurer` | `-1000000000000000 to 1000000000000000` |
| `schedule68.isWindupSuccessor` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].actual_stub_period_accrual_s343` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].avg_daily_prescribed_rate_reg_4301_a` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].base_year_aspa_inclusion` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].base_year_aspa_with_F_set_nil` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].base_year_var_F_discretionary` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].box_3A_discretionary_designation` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].box_3B_corp_income_particular_period` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].box_3C_day_ratio` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].corpSharePercentage` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].corp_income_before_reserve` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].days_base_year_end_to_ty_end` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].eligibleAlignmentIncome` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].firstTaxationYearS342_17AppliesEndYear` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].firstYearAspaForQti` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].post_2012_s112_s113_dividend_deductions` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].qtiReserveClaimedRow` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].qtiTcgComponent` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].relatedPartyAggregatedSharePercentage` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].s342_16_17_qti_adjustment_amount` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_active_business_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_foreign_property_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_other_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_property_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_share_of_income_and_tcg` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_A_tcg_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_B_acl_component` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_B_share_of_loss_and_acl` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_C_days_in_both` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_D_days_in_FYs_ending_in_year` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_E_designated_qre` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_E_max_deductible` | `-1000000000000000 to 1000000000000000` |
| `schedule71.partnerships[].var_F_discretionary` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2A_active_business_component` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2A_income` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2A_other_component` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2A_property_component` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2B_loss` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2D_tcg` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2E_acl` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2H_day_ratio` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2J_designated_qre` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2J_max_deductible` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_2K_discretionary_designation` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_3A_discretionary_designation` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_3B_corp_income_particular_period` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_3C_day_ratio` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4A_base_year_income` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4B_base_year_loss` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4D_base_year_tcg` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4E_base_year_acl` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4H_base_year_day_ratio` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4J_base_year_qre_designation` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4L_base_year_aspa` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4M_base_year_discretionary` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4N_base_year_aspa_with_F_set_nil` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4Q_days_base_year_end_to_ty_end` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].box_4S_avg_daily_prescribed_rate_reg_4301_a` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].corpSharePercentage` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].corp_income_before_reserve` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].eligibleAlignmentIncome_b_i` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].eligibleAlignmentIncome_b_ii` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].firstTaxationYearS342_17AppliesEndYear` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].firstYearAspaForQti` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].post_2012_s112_s113_dividend_deductions` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].qtiReserveClaimedRow` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].qtiTcgComponent` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].relatedPartyAggregatedSharePercentage` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].s342_16_17_qti_adjustment_amount` | `-1000000000000000 to 1000000000000000` |
| `schedule72.partnerships[].var_D_days_in_FYs_ending_in_year` | `-1000000000000000 to 1000000000000000` |
| `schedule73.characterSplitOverrides.activeBusinessIncome` | `-1000000000000000 to 1000000000000000` |
| `schedule73.characterSplitOverrides.allowableCapitalLoss` | `-1000000000000000 to 1000000000000000` |
| `schedule73.characterSplitOverrides.otherIncome` | `-1000000000000000 to 1000000000000000` |
| `schedule73.characterSplitOverrides.propertyIncome` | `-1000000000000000 to 1000000000000000` |
| `schedule73.characterSplitOverrides.taxableCapitalGain` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].characterOrdinary` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].characterTCG` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col10_threshold` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col1_stubAccrual` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col2_designatedQRE` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col3_discretionary` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col4CharacterActiveBusiness` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col4CharacterForeignActiveBusiness` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col4CharacterForeignProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col4CharacterOther` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col4CharacterProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterActiveBusiness` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterForeignActiveBusiness` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterForeignProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterOther` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6CharacterTCG` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col6_newMember` | `-1000000000000000 to 1000000000000000` |
| `schedule73.partnerships[].col9_shortfall` | `-1000000000000000 to 1000000000000000` |
| `t2Jacket.additionalInfo.financialIntermediaryStatus.qualifyingCategoryAtEveryPart4DividendReceiptTime` | `one of "approved_investment_contract_issuer", "investment_corporation", "mortgage_investment_corporation", "multiple_qualifying_categories", "mutual_fund_corporation", "prescribed_lsvcc", "prescribed_venture_capital_corporation", "not_at_every_receipt_time", null` |
| `t2Jacket.filingStatus.aocEffectiveDateTime` | `at most 40 characters` |
| `t2Jacket.filingStatus.ccpcStatusChangeEffectiveDateTime` | `at most 40 characters` |
| `t2Jacket.identification.section149Exempt` | `one of null, 1, 2, 4, "1", "2", "4"` |
| `t2Jacket.identification.taxYearEndExclusiveAt` | `at most 40 characters` |
| `t2Jacket.identification.taxYearStartAt` | `at most 40 characters` |
| `t2Jacket.identification.typeOfCorporation` | `one of null, 1, 2, 3, 4, 5, "1", "2", "3", "4", "5"` |
| `taxYear` | `matches ^\s*(?:1[0-9][0-9][0-9]\|20[0-1][0-9]\|202[0-7])\s*$; 1000 to 2027` |
| `workpapers[].priorYearRows[]._rowKey` | `0 to 20000 characters` |
| `workpapers[].rows[]._rowKey` | `0 to 20000 characters` |

## Output cells (399)

Paths are relative to this target's result object in the response.

| Cell | Types | Description |
| --- | --- | --- |
| `filingPropositions[].evidence[]` | string |  |
| `filingPropositions[].filingDisposition` | string |  |
| `filingPropositions[].propositionId` | string |  |
| `filingPropositions[].schemaVersion` | integer |  |
| `filingPropositions[].state` | string |  |
| `filingPropositions[].targets[]` | string |  |
| `provisional` | boolean |  |
| `ready` | boolean |  |
| `status` | string |  |
| `warnings[]` | object |  |
| `warnings[].accountBalance` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].accountCode` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].accountId` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].accountName` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].code` | null \| string |  |
| `warnings[].kind` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].message` | string |  |
| `warnings[].producers` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].reason` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].severity` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].actual` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].calculationUsable` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].citation` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].expected` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].key` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].inputPath` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].isNil` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].openingFamily` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].openingLabel` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].sourceState` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].affectedOutputs` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].box` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].anchorField` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].schedule` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].boxForm` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].field` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].gate_id` | null \| string |  |
| `warnings[].businessNumber` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].ccaClass` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].propertyId` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].section` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].row` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].schedule24Box` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].canonicalValue` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].enteredAmount` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].expectedAmount` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].continuityScheduleKey` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].column` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].rowIndex` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].templateId` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].dismissable` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].warning_code` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].sources` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].memberIds` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].notes` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].sourceModule` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].taxYear` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].skippedSchedules` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].taxYears` | array \| boolean \| null \| number \| object \| string |  |
| `coverageReason` | string |  |
| `coverageStatus` | string |  |
| `formId` | string |  |
| `formRevision` | null \| string |  |
| `missing_required` | array |  |
| `revisionHold.blocksCurrentFormClaim` | boolean |  |
| `revisionHold.currentFormSource` | string |  |
| `revisionHold.gaps[]` | string |  |
| `revisionHold.implementationSource` | string |  |
| `revisionHold.status` | string |  |
| `taxYear` | integer |  |
| `acquisitionOfControlDate` | null \| string |  |
| `adjustmentCoverage.affiliatedPersonStopLossApplicable` | boolean \| null |  |
| `adjustmentCoverage.affiliatedStopLossReviewRequired` | boolean |  |
| `adjustmentCoverage.affiliatedStopLossRowsEvidenced` | boolean |  |
| `adjustmentCoverage.affiliatedStopLossRowsPresent` | boolean |  |
| `adjustmentCoverage.assistanceAfterDispositionReviewRequired` | boolean |  |
| `adjustmentCoverage.capitalGainRoutingComplete` | boolean \| null |  |
| `adjustmentCoverage.capitalGainRoutingRequired` | boolean |  |
| `adjustmentCoverage.class12HalfYearReviewRequired` | boolean |  |
| `adjustmentCoverage.class12ParagraphHalfYearExclusionApplies` | boolean \| null |  |
| `adjustmentCoverage.class14_1TransitionalOpeningBalanceApplicable` | boolean \| null |  |
| `adjustmentCoverage.class14_1TransitionalReviewRequired` | boolean |  |
| `adjustmentCoverage.class1BuildingReviewRequired` | boolean |  |
| `adjustmentCoverage.class1NrbAdditionalAllowanceEligible` | boolean \| null |  |
| `adjustmentCoverage.class1NrbReviewRequired` | boolean |  |
| `adjustmentCoverage.class1UnmodelledAdditionalAllowanceApplies` | boolean \| null |  |
| `adjustmentCoverage.column205AdjustmentsApplicable` | boolean \| null |  |
| `adjustmentCoverage.column205ReviewRequired` | boolean |  |
| `adjustmentCoverage.column221AssistanceAfterDispositionApplicable` | boolean \| null |  |
| `adjustmentCoverage.column222RepaymentsAfterDispositionApplicable` | boolean \| null |  |
| `adjustmentCoverage.detectedCapitalGainClasses[]` | string |  |
| `adjustmentCoverage.detectedMultipleClass10_1Pools[]` | string |  |
| `adjustmentCoverage.diepEligibilityAndAllocationConfirmed` | boolean \| null |  |
| `adjustmentCoverage.explicitDiepReviewRequired` | boolean |  |
| `adjustmentCoverage.immediateExpensingAllocationProvided` | boolean |  |
| `adjustmentCoverage.leasingPropertyRulesApplicable` | boolean \| null |  |
| `adjustmentCoverage.leasingPropertyRulesReviewRequired` | boolean |  |
| `adjustmentCoverage.multipleClass10_1ReviewRequired` | boolean |  |
| `adjustmentCoverage.multipleClass10_1VehiclesPresent` | boolean \| null |  |
| `adjustmentCoverage.nonArmsLengthAcquisitionCapitalCostAdjustmentApplicable` | boolean \| null |  |
| `adjustmentCoverage.nonArmsLengthAcquisitionReviewRequired` | boolean |  |
| `adjustmentCoverage.otherPrescribedSeparateClassReviewRequired` | boolean |  |
| `adjustmentCoverage.otherPrescribedSeparateClassRuleApplies` | boolean \| null |  |
| `adjustmentCoverage.purposeBuiltRentalPropertyRulesApplicable` | boolean \| null |  |
| `adjustmentCoverage.purposeBuiltRentalReviewRequired` | boolean |  |
| `adjustmentCoverage.reg1101_5qElectionApplies` | boolean \| null |  |
| `adjustmentCoverage.rentalIncomeCcaLimitApplicable` | boolean \| null |  |
| `adjustmentCoverage.rentalIncomeCeilingReviewRequired` | boolean |  |
| `adjustmentCoverage.rentalPropertySeparateClassApplicable` | boolean \| null |  |
| `adjustmentCoverage.rentalPropertySeparateClassReviewRequired` | boolean |  |
| `adjustmentCoverage.repaymentsAfterDispositionReviewRequired` | boolean |  |
| `adjustmentCoverage.reviewed` | boolean |  |
| `adjustmentCoverage.schedule6EvidenceComplete` | boolean |  |
| `adjustmentCoverage.schemaVersion` | integer |  |
| `adjustmentCoverage.specialDispositionReviewRequired` | boolean |  |
| `adjustmentCoverage.specialDispositionRolloverOrDeferralApplies` | boolean \| null |  |
| `adjustmentCoverage.specifiedEnergyCeilingReviewRequired` | boolean |  |
| `adjustmentCoverage.specifiedEnergyPropertyRulesApplicable` | boolean \| null |  |
| `adjustmentCoverage.specifiedLeasingPropertyReviewRequired` | boolean |  |
| `adjustmentCoverage.specifiedLeasingPropertyRulesApplicable` | boolean \| null |  |
| `adjustmentCoverage.status` | string |  |
| `aoc` | null \| object |  |
| `aoc.aocDate` | string |  |
| `aoc.aoc_111_5_1_writedown_total` | number |  |
| `aoc.aoc_writedown_preview` | boolean |  |
| `aoc.classes[].aoc_111_5_1_writedown` | number |  |
| `aoc.classes[].ccaClass` | string |  |
| `aoc.classes[].ccaOtherwiseAllowed` | number |  |
| `aoc.classes[].fmvOfClass` | number |  |
| `aoc.classes[].propertyId` | string |  |
| `aoc.classes[].uccImmediatelyBefore` | number |  |
| `aoc.deemedCapitalGain_111_4_e_total` | number |  |
| `aoc.deemedCca_111_4_e_iii_total` | number |  |
| `aoc.designations_111_4_e[].authority` | string |  |
| `aoc.designations_111_4_e[].capitalCost` | number |  |
| `aoc.designations_111_4_e[].capitalCostAfter` | number |  |
| `aoc.designations_111_4_e[].ccaClass` | string |  |
| `aoc.designations_111_4_e[].deemedCapitalGain` | number |  |
| `aoc.designations_111_4_e[].deemedCcaPer111_4_e_iii` | number |  |
| `aoc.designations_111_4_e[].deemedProceeds` | number |  |
| `aoc.designations_111_4_e[].designatedAmount` | number |  |
| `aoc.designations_111_4_e[].fmv` | number |  |
| `aoc.designations_111_4_e[].propertyId` | string |  |
| `aoc.designations_111_4_e[].uccAfterReacquisition` | number |  |
| `aoc.designations_111_4_e[].uccBump_13_7_f` | number |  |
| `aoc.scenario` | string |  |
| `aoc.section256_9Election` | boolean \| null |  |
| `assistanceCapitalCostReductions.applied[].authority` | string |  |
| `assistanceCapitalCostReductions.applied[].capitalCostIncrease` | number |  |
| `assistanceCapitalCostReductions.applied[].capitalCostReduction` | number |  |
| `assistanceCapitalCostReductions.applied[].ccaClass` | string |  |
| `assistanceCapitalCostReductions.applied[].openingUccAfter` | number |  |
| `assistanceCapitalCostReductions.applied[].openingUccBefore` | number |  |
| `assistanceCapitalCostReductions.applied[].propertyId` | string |  |
| `assistanceCapitalCostReductions.appliedTotal` | number |  |
| `assistanceCapitalCostReductions.section80Applied[].acquisitionReduction` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].authority` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].capitalCostAtYearEnd` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].ccaClass` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].debtId` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].designatedPropertyId` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].generalCostAtYearEnd` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].openingReduction` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].propertyBasisAfter` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].propertyId` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].sourceMovementUcc` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].uccAfter` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].uccBefore` | string |  |
| `assistanceCapitalCostReductions.section80Applied[].uccReduction` | string |  |
| `assistanceCapitalCostReductions.section80AppliedTotal` | number |  |
| `changeOfUseReceivers[]` | object |  |
| `class43AssetDetails[].assetTypeCode` | string |  |
| `class43AssetDetails[].classRowNumber` | integer |  |
| `class43AssetDetails[].percentageAllocated` | number |  |
| `class43AssetDetails[].provinceCode` | string |  |
| `classes[].acquisitionCapitalCosts[].capitalCost` | null \| number |  |
| `classes[].acquisitionCapitalCosts[].capitalCostBeforeCurrentReductions` | null \| number |  |
| `classes[].acquisitionCapitalCosts[].propertyId` | string |  |
| `classes[].additions` | number |  |
| `classes[].aiipAdditions` | number |  |
| `classes[].aiipFactor` | null \| number |  |
| `classes[].aiipUccAdjustment` | number |  |
| `classes[].aocFmvOfClass` | number |  |
| `classes[].aoc_111_5_1_writedown` | number |  |
| `classes[].assetsRemaining` | integer |  |
| `classes[].ccaAtMaxRate` | number |  |
| `classes[].ccaBase` | number |  |
| `classes[].ccaClaimed` | number |  |
| `classes[].ccaClass` | string |  |
| `classes[].ccaRate` | number |  |
| `classes[].class13ManualDeterminationRequired` | boolean |  |
| `classes[].className` | string |  |
| `classes[].closingUCC` | number |  |
| `classes[].deniedTerminalLoss` | number |  |
| `classes[].diepAdditions` | number |  |
| `classes[].diepProceeds` | number |  |
| `classes[].diepUcc` | number |  |
| `classes[].eligibleLiquefactionActivitiesIncomeBeforeCca` | null \| number |  |
| `classes[].formClassNumber` | string |  |
| `classes[].hadDiep` | boolean |  |
| `classes[].halfYearReduction` | number |  |
| `classes[].immediateExpensing` | number |  |
| `classes[].immediateExpensingDesignatedAmount` | number |  |
| `classes[].isOverridden` | boolean |  |
| `classes[].isStraightLine` | boolean |  |
| `classes[].liquefactionAdditionalAllowanceAtMax` | number |  |
| `classes[].liquefactionAdditionalAllowanceAuthority` | null \| string |  |
| `classes[].liquefactionAdditionalAllowanceClaimed` | number |  |
| `classes[].liquefactionBasicAndImmediateExpensingAtMax` | number |  |
| `classes[].liquefactionFacilityId` | null \| string |  |
| `classes[].liquefactionReg1101SeparateClass` | null \| string |  |
| `classes[].manualClass13ContinuationDetermination` | boolean |  |
| `classes[].manualClass14Determination` | boolean |  |
| `classes[].mineAdditionalAllowanceAtMax` | number |  |
| `classes[].mineAdditionalAllowanceAuthority` | null \| string |  |
| `classes[].mineId` | null \| string |  |
| `classes[].mineReg1101SeparateClass` | null \| string |  |
| `classes[].netAiipAdditions` | number |  |
| `classes[].netRiipAdditions` | number |  |
| `classes[].normalCCAAfterProration` | number |  |
| `classes[].normalCCABeforeProration` | number |  |
| `classes[].openingUCC` | number |  |
| `classes[].postDispositionAssistance` | null \| number |  |
| `classes[].postDispositionRepayments` | null \| number |  |
| `classes[].proceedsReducingIncentive` | number |  |
| `classes[].proceedsReducingRiip` | number |  |
| `classes[].propertyId` | string |  |
| `classes[].railwayAdditionalAllowanceAtMax` | number |  |
| `classes[].railwayAdditionalAllowanceAuthority` | null \| string |  |
| `classes[].railwayReg1101SeparateClass` | null \| string |  |
| `classes[].recapture` | number |  |
| `classes[].recaptureSuppressed101` | boolean |  |
| `classes[].reg1101_2aCanadianVessel` | boolean |  |
| `classes[].resourceAllowanceMaximum` | null \| number |  |
| `classes[].resourceQuantityClaimed` | null \| number |  |
| `classes[].resourceRatePerUnit` | null \| number |  |
| `classes[].resourceSchedule` | null \| string |  |
| `classes[].riipAdditions` | number |  |
| `classes[].riipUccAdjustment` | number |  |
| `classes[].section13_21_1Adjustments[].actualBuildingProceeds` | number |  |
| `classes[].section13_21_1Adjustments[].actualLandProceeds` | null \| number |  |
| `classes[].section13_21_1Adjustments[].deemedBuildingProceeds` | number |  |
| `classes[].section13_21_1Adjustments[].deemedLandProceeds` | null \| number |  |
| `classes[].section13_21_1Adjustments[].paragraph` | null \| string |  |
| `classes[].section13_21_1Adjustments[].propertyGroupId` | string |  |
| `classes[].section13_21_1Adjustments[].uccReductionAfter` | number |  |
| `classes[].section13_21_1Adjustments[].uccReductionBefore` | number |  |
| `classes[].shortYearFactor` | number |  |
| `classes[].statutoryHalfYearBase` | number |  |
| `classes[].statutorySelfAcquisitionCosts[].capitalCost` | number |  |
| `classes[].statutorySelfAcquisitionCosts[].propertyId` | string |  |
| `classes[].statutoryUccTransfer` | number |  |
| `classes[].terminalLoss` | number |  |
| `classes[].uccBeforeCCA` | number |  |
| `classes[].uccColumn10` | number |  |
| `classes[].uccReductionOnDispositions` | number |  |
| `daysInYear` | integer |  |
| `fiscalEnd` | null \| string |  |
| `fiscalStart` | null \| string |  |
| `form` | object |  |
| `form.formWarnings[]` | string |  |
| `form.line101Election` | boolean \| null |  |
| `form.part2Table[].acquisitions` | number |  |
| `form.part2Table[].adjustments` | number |  |
| `form.part2Table[].cca` | number |  |
| `form.part2Table[].ccaClass` | string |  |
| `form.part2Table[].ccaRatePercent` | string |  |
| `form.part2Table[].classNumber` | string |  |
| `form.part2Table[].closingUcc` | number |  |
| `form.part2Table[].halfYearAdjustment` | number |  |
| `form.part2Table[].openingUcc` | number |  |
| `form.part2Table[].proceeds` | number |  |
| `form.part2Table[].propertyId` | string |  |
| `form.part2Table[].recapture` | number |  |
| `form.part2Table[].reducedUcc` | number |  |
| `form.part2Table[].terminalLoss` | number |  |
| `form.part2Table[].ucc` | number |  |
| `form.part2Table[].ucc10` | number |  |
| `form.part2Table[].aiipAdditions` | number |  |
| `form.part2Table[].aiipUccAdjustment` | number |  |
| `form.part2Table[].assistanceAfterDisposition` | null \| number |  |
| `form.part2Table[].netAiipAdditions` | number |  |
| `form.part2Table[].proceedsReducingAiip` | number |  |
| `form.part2Table[].repaidAfterDisposition` | null \| number |  |
| `form.line105Agreement` | boolean \| null |  |
| `form.line125ImmediateExpensingLimit` | null \| number |  |
| `form.part1Table[].epopIdentificationNumber` | string |  |
| `form.part1Table[].epopName` | string |  |
| `form.part1Table[].percentageAssigned` | number |  |
| `form.part1TotalPercentage` | null \| number |  |
| `form.part2Table[].diepAdditions` | number |  |
| `form.part2Table[].diepProceeds` | number |  |
| `form.part2Table[].diepUcc` | number |  |
| `form.part2Table[].immediateExpensing` | number |  |
| `form.part2Table[].remainderAdditions` | number |  |
| `form.part2Table[].remainingUcc` | number |  |
| `form.part2Table[].netRiipAdditions` | number |  |
| `form.part2Table[].proceedsReducingIncentive` | number |  |
| `form.part2Table[].proceedsReducingRiip` | number |  |
| `form.part2Table[].riipAdditions` | number |  |
| `form.part2Table[].riipUccAdjustment` | number |  |
| `immediateExpensingAgreement.agreementFiledByAllAssociatedEPOPs` | boolean \| null |  |
| `immediateExpensingAgreement.allocatedAgreementLimit` | null \| number |  |
| `immediateExpensingAgreement.allocations[].epopIdentificationNumber` | string |  |
| `immediateExpensingAgreement.allocations[].epopName` | string |  |
| `immediateExpensingAgreement.allocations[].percentageAssigned` | number |  |
| `immediateExpensingAgreement.associatedInTwoOrMoreTaxationYearsEndingInCalendarYear` | boolean \| null |  |
| `immediateExpensingAgreement.associatedWithEligiblePersonOrPartnership` | boolean \| null |  |
| `immediateExpensingAgreement.classDesignations[].amount` | number |  |
| `immediateExpensingAgreement.classDesignations[].ccaClass` | string |  |
| `immediateExpensingAgreement.classDesignations[].propertyId` | string |  |
| `immediateExpensingAgreement.firstTaxationYearImmediateExpensingLimit` | null \| number |  |
| `immediateExpensingAgreement.hasEarlierTaxationYearEndingInCalendarYear` | boolean \| null |  |
| `immediateExpensingAgreement.limitBeforeShortYearProration` | number |  |
| `immediateExpensingAgreement.ministerAllocatedLimit` | null \| number |  |
| `immediateExpensingAgreement.reg1104_3_6EntitiesIncluded` | boolean \| null |  |
| `immediateExpensingAgreement.totalPercentageAssigned` | number |  |
| `immediateExpensingEligibility.eligible` | boolean \| null |  |
| `immediateExpensingEligibility.filerEligible` | boolean |  |
| `immediateExpensingEligibility.periodEligible` | boolean \| null |  |
| `immediateExpensingLimitInput` | number |  |
| `immediateExpensingLimitProrated` | number |  |
| `immediateExpensingRemaining` | number |  |
| `immediateExpensingUsed` | number |  |
| `isCCPC` | boolean |  |
| `missing_required[]` | string |  |
| `netSchedule8Adjustment` | number |  |
| `postDispositionAdjustments[].assetCount` | integer |  |
| `postDispositionAdjustments[].assistance` | number |  |
| `postDispositionAdjustments[].businessCeased` | boolean \| null |  |
| `postDispositionAdjustments[].ccaClass` | string |  |
| `postDispositionAdjustments[].disposedBeforeYear` | boolean |  |
| `postDispositionAdjustments[].elementFRepayments` | number |  |
| `postDispositionAdjustments[].propertyId` | string |  |
| `postDispositionAdjustments[].repayments` | number |  |
| `postDispositionAdjustments[].wasDIEP` | boolean |  |
| `recaptureOnGiftsOfDepreciableProperty.amount` | null \| number |  |
| `recaptureOnGiftsOfDepreciableProperty.citation` | string |  |
| `recaptureOnGiftsOfDepreciableProperty.disposingClassesAnsweredNotGift` | integer |  |
| `recaptureOnGiftsOfDepreciableProperty.giftClasses[].ccaClass` | string |  |
| `recaptureOnGiftsOfDepreciableProperty.giftClasses[].recapture` | number |  |
| `recaptureOnGiftsOfDepreciableProperty.unprovableReason` | null \| string |  |
| `resourceAllowanceGrossCostCoverage.scheduleIVClass15` | number |  |
| `resourceAllowanceGrossCostCoverage.scheduleVITimberLimitsAndRights` | number |  |
| `resourceAllowanceGrossCostCoverage.scheduleVIndustrialMinerals` | number |  |
| `s13_7_1PriorYearUccReduction.applied[].ccaClass` | string |  |
| `s13_7_1PriorYearUccReduction.applied[].openingUccAfter` | number |  |
| `s13_7_1PriorYearUccReduction.applied[].openingUccBefore` | number |  |
| `s13_7_1PriorYearUccReduction.applied[].propertyId` | string |  |
| `s13_7_1PriorYearUccReduction.applied[].uccReduction` | number |  |
| `s13_7_1PriorYearUccReduction.appliedTotal` | number |  |
| `s13_7_1PriorYearUccReduction.appliesToTaxYear` | integer \| null |  |
| `s13_7_1PriorYearUccReduction.totalCarriedForward` | number |  |
| `s13_7_1PriorYearUccReduction.unattributed` | number |  |
| `schedule10Receivers` | object |  |
| `section128_1CcaDispositionReceipts[].authority` | string |  |
| `section128_1CcaDispositionReceipts[].calculatedUccImmediatelyBeforeEvent` | number |  |
| `section128_1CcaDispositionReceipts[].ccaClass` | string |  |
| `section128_1CcaDispositionReceipts[].properties[].authority` | string |  |
| `section128_1CcaDispositionReceipts[].properties[].capitalCost` | number |  |
| `section128_1CcaDispositionReceipts[].properties[].ccaClass` | string |  |
| `section128_1CcaDispositionReceipts[].properties[].deemedDispositionDate` | array \| boolean \| null \| number \| object \| string |  |
| `section128_1CcaDispositionReceipts[].properties[].deemedProceeds` | number |  |
| `section128_1CcaDispositionReceipts[].properties[].eventId` | string |  |
| `section128_1CcaDispositionReceipts[].properties[].propertyId` | string |  |
| `section128_1CcaDispositionReceipts[].properties[].uccImmediatelyBeforeEvent` | number |  |
| `section128_1CcaDispositionReceipts[].properties[].uccReduction` | number |  |
| `section128_1CcaDispositionReceipts[].propertyId` | null \| string |  |
| `section128_1CcaDispositionReceipts[].recapture` | number |  |
| `section128_1CcaDispositionReceipts[].terminalLoss` | number |  |
| `section128_1CcaDispositionReceipts[].uccImmediatelyBeforeEvent` | number |  |
| `section128_1CcaDispositionReceipts[].uccReductionOnDeemedDispositions` | number |  |
| `section149CcaDispositionReceipts[].authority` | string |  |
| `section149CcaDispositionReceipts[].calculatedUccImmediatelyBeforeEvent` | number |  |
| `section149CcaDispositionReceipts[].ccaClass` | string |  |
| `section149CcaDispositionReceipts[].properties[].authority` | string |  |
| `section149CcaDispositionReceipts[].properties[].capitalCost` | number |  |
| `section149CcaDispositionReceipts[].properties[].ccaClass` | string |  |
| `section149CcaDispositionReceipts[].properties[].deemedDispositionDate` | array \| boolean \| null \| number \| object \| string |  |
| `section149CcaDispositionReceipts[].properties[].deemedProceeds` | number |  |
| `section149CcaDispositionReceipts[].properties[].eventId` | string |  |
| `section149CcaDispositionReceipts[].properties[].propertyId` | string |  |
| `section149CcaDispositionReceipts[].properties[].uccImmediatelyBeforeEvent` | number |  |
| `section149CcaDispositionReceipts[].properties[].uccReduction` | number |  |
| `section149CcaDispositionReceipts[].propertyId` | null \| string |  |
| `section149CcaDispositionReceipts[].recapture` | number |  |
| `section149CcaDispositionReceipts[].terminalLoss` | number |  |
| `section149CcaDispositionReceipts[].uccImmediatelyBeforeEvent` | number |  |
| `section149CcaDispositionReceipts[].uccReductionOnDeemedDispositions` | number |  |
| `shortYearFactor` | number |  |
| `totalCCAClaimed` | number |  |
| `totalRecapture` | number |  |
| `totalResourceAllowanceClaimed` | number |  |
| `totalTerminalLoss` | number |  |
| `transferPricingBasisReceipts[].effectiveBasis` | number |  |
| `transferPricingBasisReceipts[].poolClass` | string |  |
| `transferPricingBasisReceipts[].poolPropertyId` | string |  |
| `transferPricingBasisReceipts[].receiver` | string |  |
| `transferPricingBasisReceipts[].receiverReady` | boolean |  |
