# schedule78

Carbon Capture, Utilization, and Storage Investment Tax Credit

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2022 and later
- Strict profile: s78_exact_single_request_target_value_v1
- Payload schema version: 0.22.0
- Dependencies (run automatically): none

## Example request

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

```json
{
  "compute": [
    "schedule78"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "schedule78": {
      "nrcanProjectCode": "NRC-PUBLIC-78",
      "isCanadianCorporation": "Y",
      "isExemptFromTaxUnderPartI": "N",
      "isProjectTaxShelter": "N",
      "firstDayOfCommercialOperations": "2028-01-01",
      "crdReportRequired": "N",
      "part1Rows": [
        {
          "ccaClassNumber": "57",
          "expenditureCategory": "carbon_capture_dac",
          "currentYearExpenditure": 100000,
          "adjustments": 0,
          "expenditureIncurredDate": "2025-06-15",
          "qualifiedExpenditureFormula": 1,
          "commercialOperationsStatus": "pre_cod",
          "designatedWorkSites": "WS-78",
          "electingLabourRequirements": "Y",
          "otherCleanEconomyCreditClaimedOnProperty": "N",
          "specifiedNaturalGasEnergySystemCleanElectricityItcClaimed": "N",
          "propertySituatedInCanada": "Y",
          "qualifiedProjectPropertyConfirmed": "Y"
        }
      ],
      "signingOfficerLastName": "Smith",
      "signingOfficerFirstName": "Jane",
      "signingOfficerPosition": "CFO",
      "attestationDate": "2025-12-01",
      "claimFiledDate": "2026-06-30",
      "metLabourRequirements": "Y",
      "expectedProjectQualifiedCcusExpenditures": 5000000,
      "line175CumulativeDevCreditPreviousYear": 0
    }
  }
}
```

## Input cells (402)

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 |
| --- | --- | --- | --- |
| `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. |
| `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[].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[].subsection111_5_1WouldApply` | boolean |  |  |
| `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. |
| `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. |
| `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. |
| `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 |  |  |
| `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. |
| `incomeStatementFlags` | object |  |  |
| `isCCPC` | boolean \| null |  | The corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. |
| `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. |
| `priorTaxYearEnd` | null \| string |  |  |
| `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. |
| `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. |
| `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.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 |  |  |
| `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. |
| `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. |
| `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.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 |  |  |
| `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. |
| `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. |
| `schedule43` | null \| object |  | Schedule 43 inputs for Parts IV.1 and VI.1 tax, dividend allowances, elections and related-corporation transfers. |
| `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 |  |  |
| `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 |  |  |
| `schedule72` | null \| object |  |  |
| `schedule78` | null \| object |  |  |
| `schedule78.amountFCumulativeDevCreditAtCommercialOps` | null \| number \| string |  | Current E (25) amount D: cumulative development tax credit for the year that includes first commercial operations (the property name keeps the E (24) amount-F label). |
| `schedule78.amountGCumulativeDevIfProjectedEqualsActual` | null \| number \| string |  | Current E (25) amount E — recomputed D if projected EU% = actual EU%. The property name retains its E (24) amount-G identity. |
| `schedule78.amountHPreviouslyRepaidDevCredits` | null \| number \| string |  | Current E (25) amount F — development credits previously repaid. The property name retains its E (24) amount-H identity. |
| `schedule78.amountITotalRefurbCredits` | null \| number \| string |  | Current E (25) amount G — total refurbishment credits for current and previous years. The property name retains its E (24) amount-I identity. |
| `schedule78.amountJRefurbIfProjectedEqualsActual` | null \| number \| string |  | Current E (25) amount H — recomputed G if projected EU% = actual EU%. The property name retains its E (24) amount-J identity. |
| `schedule78.amountKPreviouslyRepaidRefurbCredits` | null \| number \| string |  | Current E (25) amount I — refurbishment credits previously repaid. The property name retains its E (24) amount-K identity. |
| `schedule78.apprenticeHoursActual` | null \| number \| string |  | Box 320 — Hours actually performed by Red Seal apprentices. |
| `schedule78.apprenticeHoursRequired` | null \| number \| string |  | Box 315 — Hours required to be performed by Red Seal apprentices. |
| `schedule78.attestationDate` | null \| string |  | Box 215 — Date of attestation (yyyy/mm/dd). |
| `schedule78.claimFiledDate` | boolean \| null \| number \| string |  | Date Schedule 78 was or will be filed. The backend combines this with the authoritative T2 filing-due date to enforce s.127.44(17). |
| `schedule78.combinedFirstPeriodProjectedEligibleTonnes` | null \| number \| string |  | Project-plan tonnes from an October-December commercial start through December 31 of the following year. |
| `schedule78.combinedFirstPeriodProjectedTotalTonnes` | null \| number \| string |  |  |
| `schedule78.crdCumulativeCreditsBeforeDueDay` | null \| number \| string |  | All corporate CCUS credits for taxation years ending before this report's due day. |
| `schedule78.crdReportDueDay` | null \| string |  | Reporting-due day for the climate risk disclosure report. Required when box 102 is Yes so the s.211.93(1)(b) deadline can be tested. |
| `schedule78.crdReportRequired` | boolean \| null \| string |  | Box 102 — Required to file CRD (climate risk disclosure) report? Per s.211.93(5) failure attracts lesser-of-(4% of CCUS credits, $1M) penalty. |
| `schedule78.crdReportingProjects` | array \| null |  | Complete corporation-wide reporting history; null is unknown, \[\] is no credit history. |
| `schedule78.crdReportingProjects[]` | object |  |  |
| `schedule78.crdReportingProjects[].commercialOperationsTaxationYearEndDate` | boolean \| null \| number \| string |  | Null means commercial operations have not begun. |
| `schedule78.crdReportingProjects[].firstCreditTaxationYearEndDate` | boolean \| null \| number \| string |  |  |
| `schedule78.crdReportingProjects[].projectCode` | null \| string |  |  |
| `schedule78.daysBelowPrevailingWage` | null \| number \| string |  | Box 310 — Total covered-worker-days below prevailing wage. |
| `schedule78.expectedProjectQualifiedCcusExpenditures` | null \| number \| string |  | Expected qualified CCUS expenditures for the whole project. Required when box 102 is No to test the s.211.92(1) $20 million exemption. |
| `schedule78.firstCcusClaimTaxationYearEnd` | null \| string |  | First taxation-year end for which this taxpayer claimed a credit for this project (s.211.92(1)). |
| `schedule78.firstDayOfCommercialOperations` | null \| string |  | Box 101 — First day of commercial operations (yyyy/mm/dd). Defined in s.127.44(1) as 120 days after first ongoing CO2 delivery. |
| `schedule78.isCanadianCorporation` | boolean \| null \| number \| string |  | The s.89(1) Canadian-corporation limb of the s.127.44(1) qualifying-taxpayer definition. |
| `schedule78.isExemptFromTaxUnderPartI` | boolean \| null \| number \| string |  | The s.89(1) Part I exemption limb of taxable Canadian corporation. |
| `schedule78.isProjectTaxShelter` | boolean \| null \| string |  | Project-level tax-shelter investment assertion per s.127.44(16). When 'Y', the engine denies the ENTIRE project's CCUS ITC — broader than S75's property-level scope. The corp asserts this flag; engine cannot auto-validate s.143.2 status. |
| `schedule78.latestCrdReportDate` | null \| string |  | Box 103 — Date of latest CRD report disclosed (yyyy/mm/dd). |
| `schedule78.line170AdjustmentDownward` | null \| number \| string |  | Downward adjustment to line 170 — practitioner-side write-down per form note 6 / s.127.44(6) when projected EU% is reduced prior to first day of commercial operations. The only path that allows line 400 (s.211.92(2) recovery of cumulative dev TC) to fire. Enter a positive absolute amount. |
| `schedule78.line175CumulativeDevCreditPreviousYear` | null \| number \| string |  | Box 175 — cumulative CCUS development tax credit for the previous year, which T2 SCH 78 E (25) p.2 defines as "line 170 of the previous year". Do not subtract the prior year's line 400: s.211.92 recovers tax and does not shrink the cumulative credit carried forward. Supplied by the frozen prior-filed continuity envelope when an authenticated prior return is linked, and a disagreeing entry then blocks. null is an unproven opening, not a nil one, and blocks a return claiming a current development credit; enter 0 for the project's first year. |
| `schedule78.line175CumulativePreCodQualifiedAggregate` | null \| number \| string |  | Cumulative pre-COD qualified expenditure aggregate carried forward (used to evaluate the 10% s.127.44(9)(b)(v) refurbishment cap in refurbishment-only years). |
| `schedule78.line175CumulativePreCodQualifiedAggregateSource` | null \| string |  | Provenance marker stating that the line 175 cumulative pre-commercial-operations aggregate came from the prior filing. Without it a non-zero aggregate is treated as unproven, excluded from the 10 percent ITA s.127.44(9)(b)(v) cap base, and the return is blocked. |
| `schedule78.line185CumulativePostCodQualifiedAggregate` | null \| number \| string |  | The lifetime post-commercial-operations qualified CCUS expenditure already counted against the 10 percent ITA s.127.44(9)(b)(v) cap, carried forward from the prior filing. Enter 0 for the project's first post-commercial-operations year, because a blank blocks. |
| `schedule78.line185CumulativePostCodQualifiedAggregateSource` | null \| string |  | Provenance marker stating that the line 185 cumulative post-commercial-operations aggregate came from the prior filing. A non-zero aggregate without it still counts against the cap but blocks the return until it is reconciled. |
| `schedule78.line190PartnershipAllocatedItc` | null \| number \| string |  | Box 190 — CCUS ITC allocated from partnerships (T5013 box 245). Subject to s.127.47 at-risk amount cap for limited partners. |
| `schedule78.line325PartnershipAllocatedLabourAddition` | null \| number \| string |  | Box 325 — Labour addition allocated from partnerships (T5013 box 246). |
| `schedule78.line465PartnershipAllocatedPartXii7Tax` | null \| number \| string |  | Box 465 — Part XII.7 tax allocated from partnerships (T5013 box 269). Sourced from Part 5 total 560 when part5Rows are present. |
| `schedule78.metLabourRequirements` | boolean \| null \| string |  | Box 300 — Met prevailing wage AND apprenticeship requirements? |
| `schedule78.nrcanProjectCode` | null \| string |  | Box 100 — NRCan project code (one schedule per project per s.127.44(8)). |
| `schedule78.ownsInterestInQualifiedCcusProject` | boolean \| null \| string |  | Whether the corporation owns a direct or indirect interest in a qualified CCUS project. A No answer supports the s.211.92(1) exemption where expected project expenditures reach $20 million. |
| `schedule78.part1Rows` | array \| null |  |  |
| `schedule78.part1Rows[]` | object |  |  |
| `schedule78.part1Rows[].adjustments` | null \| number \| string |  | Box 130 — Non-government assistance (column 1G) per s.127.44(9)(a)(ii). REDUCES eligible expenditure. Note: ONLY non-government assistance for CCUS (distinct from S75 which captures government too). Required on a claiming row: enter 0 when there is none; blank is unanswered and holds the credit. |
| `schedule78.part1Rows[].assistanceRepaid` | null \| number \| string |  | Box 135 — Assistance repaid (column 1H) per s.127.44(10). |
| `schedule78.part1Rows[].ccaClassNumber` | null \| string |  | Box 105 — CCA class number (typically Class 57 or 58). |
| `schedule78.part1Rows[].commercialOperationsStatus` | null \| string |  | Commercial-operations status — directs the expenditure to the development credit pool (pre-COD, line 170) or refurbishment pool (post-COD, line 185). Per s.127.44(4)/(5). |
| `schedule78.part1Rows[].currentYearExpenditure` | null \| number \| string |  | Box 125 — Current year CCUS expenditure (column 1F). Per s.127.44(12), exclude any amount unpaid 180 days post-YE. |
| `schedule78.part1Rows[].designatedWorkSites` | null \| string |  | Box 122 — Designated work site number. |
| `schedule78.part1Rows[].dualUseApportionmentBasis` | null \| string |  |  |
| `schedule78.part1Rows[].dualUseCapitalCost` | null \| number \| string |  | Off-face: full capital cost before the s.127.44(1) dual-use apportionment. The engine derives box 125 from this amount. |
| `schedule78.part1Rows[].dualUseCcusExpectedQuantity` | null \| number \| string |  | Off-face: expected quantity supporting the qualified CCUS process. |
| `schedule78.part1Rows[].dualUseEquipment` | boolean \| null \| string |  | Box 115 — Dual-use equipment (Y/N). |
| `schedule78.part1Rows[].dualUseProportion` | null \| number \| string |  | Off-face: stated applicable proportion, reconciled to the two expected quantities before the credit can feed downstream. |
| `schedule78.part1Rows[].dualUseTotalExpectedQuantity` | null \| number \| string |  | Off-face: total expected quantity in the same units and on the same most-recent-project-plan basis. |
| `schedule78.part1Rows[].electingLabourRequirements` | boolean \| null \| string |  | Box 165 — Per-row election to meet labour requirements under s.127.46(2). When 'N' AND prepared/installed after 2023-11-27, the specified % is reduced by 10pp. CCUS has NO exempt classes (distinct from S75 which exempts 43.1(d)(i) + 56). |
| `schedule78.part1Rows[].expenditureCategory` | null \| string |  |  |
| `schedule78.part1Rows[].expenditureDescription` | null \| string |  | Box 110 — Description of qualified CCUS expenditure. Free-form; engine scans for "enhanced oil recovery" / "EOR" tokens to surface the s.127.44(1) 'ineligible use' para (b) statutory exclusion. |
| `schedule78.part1Rows[].expenditureIncurredDate` | null \| string |  | Expenditure incurred date (yyyy/mm/dd). Drives the s.127.44(1) rate bracket selection. NOT available-for-use date — CCUS uses expenditure-date specifically (distinct from S75/S76). |
| `schedule78.part1Rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule78.part1Rows[].otherCleanEconomyCreditClaimedOnProperty` | boolean \| null \| number \| string |  | s.127.44(9)(b)(ii)(C): has any person deducted an investment tax credit or another clean economy tax credit for this expenditure? Required. "Y" excludes the row; null or an invalid value holds it. |
| `schedule78.part1Rows[].preparedOrInstalledDate` | null \| string |  | Prepared-or-installed date (yyyy/mm/dd). Drives the s.127.46(2) labour-cutover gate. Defaults to expenditureIncurredDate if not separately provided. |
| `schedule78.part1Rows[].propertyId` | null \| string |  | Stable identifier for the property this expenditure acquired. Used to match against the Part 4 disposition table for the s.127.44(9)(b)(vi) same-taxation-year disposition / export exclusion. When a Part 4 row carries no propertyId AND this row carries none either, the engine cannot evaluate the exclusion and holds this row's credit out of lines 170 / 185. Matching is exact and CASE-SENSITIVE — use the same string on both tables. |
| `schedule78.part1Rows[].propertyIdentifier` | null \| string |  |  |
| `schedule78.part1Rows[].propertySituatedInCanada` | boolean \| null \| string |  | Box 120 — is the property situated IN Canada? A "qualified CCUS expenditure" is the capital cost to acquire "a property (other than property situated outside of Canada)". null = unanswered. |
| `schedule78.part1Rows[].provinceOrTerritory` | null \| string |  | Box 120 — Province or territory. |
| `schedule78.part1Rows[].qualifiedExpenditureFormula` | null \| number \| string |  | Box 145 — Qualified expenditure formula (column 1J). For capture/transport: projected-eligible-use weighted formula result per s.127.44(1) 'qualified carbon capture / transportation expenditure'. For storage/use: enter 1 (no weighting). |
| `schedule78.part1Rows[].qualifiedProjectPropertyConfirmed` | boolean \| null \| string |  | Box 110 — are the qualified-CCUS-project property conditions confirmed? The expenditure qualifies only if the property is described in the applicable paragraph of Class 57 or 58, is acquired "in respect of a qualified CCUS project", is not excluded or previously-used property or preliminary work, and any dual-use apportionment and s.21 treatment are settled. null = unanswered. |
| `schedule78.part1Rows[].specifiedNaturalGasEnergySystemCleanElectricityItcClaimed` | boolean \| null \| number \| string |  |  |
| `schedule78.part4DispositionRows` | array \| null |  | Disposition table per s.211.92(9)/(10). |
| `schedule78.part4DispositionRows[]` | object |  |  |
| `schedule78.part4DispositionRows[].capitalCost` | null \| number \| string |  | Box 435 — Original capital cost (column 4E). |
| `schedule78.part4DispositionRows[].ccaClassNumber` | null \| string |  | Box 415 — CCA class number of disposed/exported property. |
| `schedule78.part4DispositionRows[].ccusItcAmount` | null \| number \| string |  | Box 425 — Original CCUS ITC amount claimed (column 4C). |
| `schedule78.part4DispositionRows[].creditType` | null \| string |  | Credit type — routes net recovery to line 455 (development) or line 460 (refurbishment). |
| `schedule78.part4DispositionRows[].dispositionDate` | null \| string |  | Date of the disposition or export (yyyy/mm/dd). |
| `schedule78.part4DispositionRows[].expenditureDescription` | null \| string |  | Box 420 — Description of qualified CCUS expenditure. |
| `schedule78.part4DispositionRows[].previouslyPaidRecovery` | null \| number \| string |  | Box 445 — CCUS dev/refurb credits recovery previously paid (4G). |
| `schedule78.part4DispositionRows[].previouslyPaidRecoverySource` | null \| string |  |  |
| `schedule78.part4DispositionRows[].proceedsOrFmv` | null \| number \| string |  | Box 430 — Proceeds of disposition (AL) or FMV (NAL / export). Per form note 11, cannot exceed capital cost. |
| `schedule78.part4DispositionRows[].projectSaleElection211_92_11` | boolean \| null \| string |  | Has an election under s.211.92(11) been made on a sale of the whole CCUS project? When "Y" the acquisition expenditure remains qualified notwithstanding the same-year disposition — this is the "except where subsection 211.92(11) applies" carve-out in s.127.44(9)(b)(vi). |
| `schedule78.part4DispositionRows[].propertyId` | null \| string |  | Stable identifier of the disposed/exported property. MUST match the propertyId on the Part 1 row that acquired it, so the engine can apply the s.127.44(9)(b)(vi) same-taxation-year exclusion. Leaving it blank makes every unidentified Part 1 row fail closed. Matching is exact and case-sensitive. |
| `schedule78.part5Rows` | array \| null |  | Per-partnership ledger behind lines 190 / 325 / 465. When present, totals 550/555/560 are authoritative for those three lines and a disagreeing flat entry is an error naming both figures. |
| `schedule78.part5Rows[]` | object |  |  |
| `schedule78.part5Rows[].ccusItcAllocated` | null \| number \| string |  | Box 510 — CCUS ITC allocated from the partnership (column 5C, T5013 box 245). Sums into line 550 → line 190. |
| `schedule78.part5Rows[].labourAdditionAllocated` | null \| number \| string |  | Box 515 — Labour requirements addition to tax allocated from the partnership (column 5D, T5013 box 246). Sums into line 555 → line 325. |
| `schedule78.part5Rows[].partXii7TaxAllocated` | null \| number \| string |  | Box 520 — Part XII.7 tax allocated from the partnership (column 5E, T5013 box 269). Sums into line 560 → line 465. |
| `schedule78.part5Rows[].partnershipAccountNumber` | null \| string |  | Box 505 — Partnership account number (column 5B). |
| `schedule78.part5Rows[].partnershipName` | null \| string |  | Box 500 — Partnership's name (column 5A). |
| `schedule78.priorYearRegularRateClaimForInstallationYear` | boolean \| null \| string |  | s.127.46(6)/(7) assess the addition in the INSTALLATION taxation year for a credit claimed at the regular rate "in a taxation year" — which need not be this one. Current Part 1 rows cannot prove an earlier year's claim, so the corporation states it. Unanswered holds Amounts B and C. |
| `schedule78.projectPeriodRows` | array \| null |  |  |
| `schedule78.projectPeriodRows[]` | object |  |  |
| `schedule78.projectPeriodRows[].actualEligibleUsePct` | null \| number \| string |  | Box 003 — Actual eligible use percentage (decimal 0-1). DERIVED by the engine as box 004 ÷ box 005 per the s.211.92(1) definition; an entry here is reconciled against that quotient and must agree. |
| `schedule78.projectPeriodRows[].calendarYear` | null \| string |  | Box 001 (second column) — Calendar year the row reports. s.211.92(3) tests actual eligible use "during any YEAR during the project's total CCUS project review period", so a bare period number cannot identify the year being reported. |
| `schedule78.projectPeriodRows[].capturedCarbonTonnesEligibleUse` | null \| number \| string |  | Box 004 — Quantity of captured carbon in tonnes for storage or use in eligible use. Element A of the s.211.92(1) A ÷ B formula, and part (a) of the s.211.93(7) report. |
| `schedule78.projectPeriodRows[].capturedCarbonTonnesTotal` | null \| number \| string |  | Box 005 — Total quantity of captured carbon in tonnes for storage or use in BOTH eligible and ineligible use. Element B of the s.211.92(1) A ÷ B formula, and part (b) of the s.211.93(7) report. Until both tonnages are filed the actual eligible use percentage is deemed nil. |
| `schedule78.projectPeriodRows[].projectPeriod` | null \| string |  | Box 001 — Project period number (1-4). |
| `schedule78.projectPeriodRows[].projectedCarbonTonnesEligibleUse` | null \| number \| string |  | Annual project-plan quantities for the combined s.127.44(1)(c)(i) test. |
| `schedule78.projectPeriodRows[].projectedCarbonTonnesTotal` | null \| number \| string |  |  |
| `schedule78.projectPeriodRows[].projectedEligibleUsePct` | null \| number \| string |  | Box 002 — Projected eligible use percentage (decimal 0-1). |
| `schedule78.signingOfficerFirstName` | null \| string |  | Box 205 — Signing officer first name. |
| `schedule78.signingOfficerLastName` | null \| string |  | Box 200 — Signing officer last name. |
| `schedule78.signingOfficerPosition` | null \| string |  | Box 210 — Position, office, or title. |
| `schedule78.signingOfficerTelephone` | null \| string |  | Box 220 — Telephone number. |
| `schedule78.taxationYearEndDate` | null \| string |  |  |
| `schedule78.taxationYearStartDate` | null \| string |  | Taxation-year bounds (ISO YYYY-MM-DD) for the s.127.46(8) inflation proration of the Part 3 labour-requirement additions to tax — the same blob keys, and the same rule, as Schedule75Data. A straddling year owes the 2024 rate on its 2024 days and the 2025 rate on its 2025 days, so without both bounds an addition blocks rather than shipping a flat rate. Populate from the batch identification block (identification.taxYearStart / taxYearEnd) rather than asking the preparer for a date the return already carries. No CRA box. |
| `schedule78.workersBelowPrevailingWageCount` | null \| number \| string |  | Box 305 — Number of covered workers paid below prevailing wage. |
| `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 |  |  |
| `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 |  |  |
| `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.partXII4CreditTotal127_41` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.additionalInfo.productsOrServices` | array \| boolean \| null \| number \| object \| 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.addresses.headOffice.country` | array \| boolean \| null \| number \| object \| string |  |  |
| `t2Jacket.addresses.headOffice.provinceOrState` | array \| boolean \| null \| number \| object \| string |  |  |
| `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.foreignAffiliatesT1134` | boolean \| null |  |  |
| `t2Jacket.applicability.fuelChargeFarmersTC` | boolean \| null |  |  |
| `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.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.section256_9Election` | array \| boolean \| null \| number \| object \| string |  |  |
| `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 |  |
| `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 (89 of 402 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 |
| --- | --- |
| `aocPropertyDesignations[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].designatedAmount` | `-1000000000000000 to 1000000000000000` |
| `aocPropertyDesignations[].subsection111_5_1WouldApply` | `one of false, true` |
| `daysInYear` | `-1000000000000000 to 1000000000000000` |
| `functionalCurrencyContext.firstDayRate.rate` | `-1000000000000000 to 1000000000000000` |
| `functionalCurrencyContext.firstDayRate.spotRateSource` | `one of "boc_valet", "boc_archival_manual"` |
| `schedule24.operationCode` | `one of null, "01", "02", "03", "04", "05", "06", "07", "09", "10", "11", "12", "13", "14", "15", "16", "17", "99"` |
| `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` |
| `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` |
| `schedule78.amountFCumulativeDevCreditAtCommercialOps` | `-1000000000000000 to 1000000000000000` |
| `schedule78.amountGCumulativeDevIfProjectedEqualsActual` | `-1000000000000000 to 1000000000000000` |
| `schedule78.amountHPreviouslyRepaidDevCredits` | `-1000000000000000 to 1000000000000000` |
| `schedule78.amountITotalRefurbCredits` | `-1000000000000000 to 1000000000000000` |
| `schedule78.amountJRefurbIfProjectedEqualsActual` | `-1000000000000000 to 1000000000000000` |
| `schedule78.amountKPreviouslyRepaidRefurbCredits` | `-1000000000000000 to 1000000000000000` |
| `schedule78.apprenticeHoursActual` | `-1000000000000000 to 1000000000000000` |
| `schedule78.apprenticeHoursRequired` | `-1000000000000000 to 1000000000000000` |
| `schedule78.claimFiledDate` | `-1000000000000000 to 1000000000000000` |
| `schedule78.combinedFirstPeriodProjectedEligibleTonnes` | `-1000000000000000 to 1000000000000000` |
| `schedule78.combinedFirstPeriodProjectedTotalTonnes` | `-1000000000000000 to 1000000000000000` |
| `schedule78.crdCumulativeCreditsBeforeDueDay` | `-1000000000000000 to 1000000000000000` |
| `schedule78.crdReportingProjects[].commercialOperationsTaxationYearEndDate` | `-1000000000000000 to 1000000000000000` |
| `schedule78.crdReportingProjects[].firstCreditTaxationYearEndDate` | `-1000000000000000 to 1000000000000000` |
| `schedule78.daysBelowPrevailingWage` | `-1000000000000000 to 1000000000000000` |
| `schedule78.expectedProjectQualifiedCcusExpenditures` | `-1000000000000000 to 1000000000000000` |
| `schedule78.isCanadianCorporation` | `-1000000000000000 to 1000000000000000` |
| `schedule78.isExemptFromTaxUnderPartI` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line170AdjustmentDownward` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line175CumulativeDevCreditPreviousYear` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line175CumulativePreCodQualifiedAggregate` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line185CumulativePostCodQualifiedAggregate` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line190PartnershipAllocatedItc` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line325PartnershipAllocatedLabourAddition` | `-1000000000000000 to 1000000000000000` |
| `schedule78.line465PartnershipAllocatedPartXii7Tax` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].adjustments` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].assistanceRepaid` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].currentYearExpenditure` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].dualUseCapitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].dualUseCcusExpectedQuantity` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].dualUseProportion` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].dualUseTotalExpectedQuantity` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].otherCleanEconomyCreditClaimedOnProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].qualifiedExpenditureFormula` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part1Rows[].specifiedNaturalGasEnergySystemCleanElectricityItcClaimed` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part4DispositionRows[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part4DispositionRows[].ccusItcAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part4DispositionRows[].previouslyPaidRecovery` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part4DispositionRows[].proceedsOrFmv` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part5Rows[].ccusItcAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part5Rows[].labourAdditionAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule78.part5Rows[].partXii7TaxAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].actualEligibleUsePct` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].capturedCarbonTonnesEligibleUse` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].capturedCarbonTonnesTotal` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].projectedCarbonTonnesEligibleUse` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].projectedCarbonTonnesTotal` | `-1000000000000000 to 1000000000000000` |
| `schedule78.projectPeriodRows[].projectedEligibleUsePct` | `-1000000000000000 to 1000000000000000` |
| `schedule78.workersBelowPrevailingWageCount` | `-1000000000000000 to 1000000000000000` |
| `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 (205)

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[].actual` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].code` | null \| string |  |
| `warnings[].expected` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].inputPath` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].isNil` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].message` | string |  |
| `warnings[].openingFamily` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].openingLabel` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].severity` | 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[].calculationUsable` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].producers` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].anchorField` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].schedule` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].anchor_field` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].citation` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].gate_id` | null \| string |  |
| `warnings[].boxForm` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].missing_required` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].continuityScheduleKey` | 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[].sources` | 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 |  |
| `amount_a_ccus_itc` | number |  |
| `amount_b_wage_addition` | number |  |
| `amount_c_apprenticeship_addition` | number |  |
| `amount_l_total_part_xii7_tax` | number |  |
| `claim_filing_deadline` | null \| string |  |
| `continuation_rows.part5Rows[].ccusItcAllocated` | number |  |
| `continuation_rows.part5Rows[].labourAdditionAllocated` | number |  |
| `continuation_rows.part5Rows[].partXii7TaxAllocated` | number |  |
| `continuation_rows.part5Rows[].partnershipAccountNumber` | null \| string |  |
| `continuation_rows.part5Rows[].partnershipName` | null \| string |  |
| `continuation_rows.projectPeriodRows[].acceleratedDeemedNil` | boolean |  |
| `continuation_rows.projectPeriodRows[].actualEligibleUsePct` | number |  |
| `continuation_rows.projectPeriodRows[].actualEligibleUsePctSource` | string |  |
| `continuation_rows.projectPeriodRows[].calendarYear` | null \| string |  |
| `continuation_rows.projectPeriodRows[].capturedCarbonTonnesEligibleUse` | null \| number |  |
| `continuation_rows.projectPeriodRows[].capturedCarbonTonnesTotal` | null \| number |  |
| `continuation_rows.projectPeriodRows[].eligibleUseReportFiled` | boolean |  |
| `continuation_rows.projectPeriodRows[].projectPeriod` | null \| string |  |
| `continuation_rows.projectPeriodRows[].projectedEligibleUsePct` | null \| number |  |
| `continuation_rows.projectPeriodRows[].shortfallPct` | null \| number |  |
| `continuation_rows.projectPeriodRows[].tonnageDetailComplete` | boolean |  |
| `crdReportingProjects[]` | array \| boolean \| null \| number \| object \| string |  |
| `fired_gates` | object |  |
| `form_coverage_hold` | null |  |
| `held_downstream_components[]` | string |  |
| `line_001` | null \| string |  |
| `line_002` | null \| number |  |
| `line_003` | null \| number |  |
| `line_004` | null \| number |  |
| `line_005` | null \| number |  |
| `line_100` | null \| string |  |
| `line_101` | null \| string |  |
| `line_102` | null \| string |  |
| `line_103` | null \| string |  |
| `line_105` | null \| string |  |
| `line_110` | null \| string |  |
| `line_115` | null \| string |  |
| `line_120` | null \| string |  |
| `line_122` | null \| string |  |
| `line_125` | number |  |
| `line_130` | number |  |
| `line_135` | number |  |
| `line_140` | number |  |
| `line_145` | null \| number |  |
| `line_150` | number |  |
| `line_155` | null \| number |  |
| `line_160` | number |  |
| `line_165` | null \| string |  |
| `line_170` | number |  |
| `line_175` | number |  |
| `line_180` | number |  |
| `line_185` | number |  |
| `line_190` | number |  |
| `line_200` | null \| string |  |
| `line_205` | null \| string |  |
| `line_210` | null \| string |  |
| `line_215` | null \| string |  |
| `line_220` | null \| string |  |
| `line_300` | null \| string |  |
| `line_305` | null \| number |  |
| `line_310` | null \| number |  |
| `line_312` | number |  |
| `line_315` | null \| number |  |
| `line_320` | null \| number |  |
| `line_322` | number |  |
| `line_325` | number |  |
| `line_330` | number |  |
| `line_330_total_labour_addition` | number |  |
| `line_400` | number |  |
| `line_405` | number |  |
| `line_410` | number |  |
| `line_415` | null \| string |  |
| `line_420` | null \| string |  |
| `line_425` | number |  |
| `line_430` | number |  |
| `line_435` | number |  |
| `line_440` | null \| number |  |
| `line_445` | number |  |
| `line_450` | number |  |
| `line_455` | number |  |
| `line_460` | number |  |
| `line_465` | number |  |
| `line_500` | null \| string |  |
| `line_505` | null \| string |  |
| `line_510` | number |  |
| `line_515` | number |  |
| `line_520` | number |  |
| `line_550` | number |  |
| `line_555` | number |  |
| `line_560` | number |  |
| `missing_required[]` | string |  |
| `part1Rows[]._eligibilityHeld` | boolean |  |
| `part1Rows[]._labourReductionApplied` | boolean |  |
| `part1Rows[]._regularRateLabourClaim` | boolean |  |
| `part1Rows[].adjustments` | number |  |
| `part1Rows[].assistanceRepaid` | number |  |
| `part1Rows[].ccaClassNumber` | null \| string |  |
| `part1Rows[].ccusItcAmount` | number |  |
| `part1Rows[].commercialOperationsStatus` | string |  |
| `part1Rows[].currentYearExpenditure` | number |  |
| `part1Rows[].designatedWorkSites` | null \| string |  |
| `part1Rows[].dualUseApportionmentBasis` | null \| string |  |
| `part1Rows[].dualUseCapitalCost` | null \| number |  |
| `part1Rows[].dualUseCcusExpectedQuantity` | null \| number |  |
| `part1Rows[].dualUseComputedProportion` | null \| number |  |
| `part1Rows[].dualUseEquipment` | null \| string |  |
| `part1Rows[].dualUseProportion` | null \| number |  |
| `part1Rows[].dualUseTotalExpectedQuantity` | null \| number |  |
| `part1Rows[].electingLabourRequirements` | null \| string |  |
| `part1Rows[].eligibleCcusExpenditure` | number |  |
| `part1Rows[].expenditureCategory` | null \| string |  |
| `part1Rows[].expenditureDescription` | null \| string |  |
| `part1Rows[].expenditureIncurredDate` | null \| string |  |
| `part1Rows[].preparedOrInstalledDate` | null \| string |  |
| `part1Rows[].propertyId` | null \| string |  |
| `part1Rows[].propertySituatedInCanada` | null \| string |  |
| `part1Rows[].provinceOrTerritory` | null \| string |  |
| `part1Rows[].qualifiedCcusExpenditure` | number |  |
| `part1Rows[].qualifiedExpenditureFormula` | number |  |
| `part1Rows[].qualifiedProjectPropertyConfirmed` | null \| string |  |
| `part1Rows[].rateBracket` | null \| string |  |
| `part1Rows[].specifiedPercentage` | number |  |
| `part4DispositionRows[].capitalCost` | number |  |
| `part4DispositionRows[].ccaClassNumber` | null \| string |  |
| `part4DispositionRows[].ccusItcAmount` | number |  |
| `part4DispositionRows[].creditType` | null \| string |  |
| `part4DispositionRows[].dispositionDate` | null \| string |  |
| `part4DispositionRows[].expenditureDescription` | null \| string |  |
| `part4DispositionRows[].netRecoveryAmount` | number |  |
| `part4DispositionRows[].previouslyPaidRecovery` | number |  |
| `part4DispositionRows[].proceedsOrFmv` | number |  |
| `part4DispositionRows[].projectSaleElection211_92_11` | null \| string |  |
| `part4DispositionRows[].propertyId` | null \| string |  |
| `part4DispositionRows[].proportionRecaptured` | number |  |
| `part5Rows[].ccusItcAllocated` | number |  |
| `part5Rows[].labourAdditionAllocated` | number |  |
| `part5Rows[].partXii7TaxAllocated` | number |  |
| `part5Rows[].partnershipAccountNumber` | null \| string |  |
| `part5Rows[].partnershipName` | null \| string |  |
| `projectPeriodRows[].acceleratedDeemedNil` | boolean |  |
| `projectPeriodRows[].actualEligibleUsePct` | number |  |
| `projectPeriodRows[].actualEligibleUsePctSource` | string |  |
| `projectPeriodRows[].calendarYear` | null \| string |  |
| `projectPeriodRows[].capturedCarbonTonnesEligibleUse` | null \| number |  |
| `projectPeriodRows[].capturedCarbonTonnesTotal` | null \| number |  |
| `projectPeriodRows[].eligibleUseReportFiled` | boolean |  |
| `projectPeriodRows[].projectPeriod` | null \| string |  |
| `projectPeriodRows[].projectedEligibleUsePct` | null \| number |  |
| `projectPeriodRows[].shortfallPct` | null \| number |  |
| `projectPeriodRows[].tonnageDetailComplete` | boolean |  |
| `s31_feed_ccus_itc_line_200` | number |  |
| `t2_line_580_feed_labour_addition` | number |  |
| `t2_line_726_feed_part_xii7_tax` | number |  |
| `total_post_cod_qualified` | number |  |
| `total_post_cod_qualified_cumulative` | number |  |
| `total_pre_cod_qualified` | number |  |
| `total_pre_cod_qualified_cumulative` | number |  |
