# schedule76

Clean Technology Manufacturing Investment Tax Credit

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2024 and later
- Strict profile: s76_exact_single_request_target_value_v1
- Payload schema version: 0.21.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": [
    "schedule76"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "schedule76": {
      "isCanadianCorporation": "Y",
      "isExemptFromTaxUnderPartI": "N",
      "isTaxShelterInvestment": "N",
      "part1Rows": [
        {
          "propertyIdentifier": "FA-76-0001",
          "ccaClassNumber": "53",
          "ctmPropertyDescription": "Manufacturing press",
          "ctmUseCode": "01",
          "batteryProductionBenefitsFromContributionAgreement": "N",
          "ctmUseIsAllOrSubstantiallyAll": "Y",
          "provinceOrTerritory": "ON",
          "acquisitionDate": "2025-06-15",
          "availableForUseDate": "2025-06-15",
          "capitalCost": 100000,
          "adjustments": 0,
          "assistanceRepaid": 0,
          "situatedAndUsedExclusivelyInCanada": "Y",
          "previouslyUsedOrAcquiredForUseOrLease": "N",
          "leasedToAnotherPerson": "N",
          "otherCleanEconomyCreditClaimedOnProperty": "N"
        }
      ]
    }
  }
}
```

## Input cells (365)

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. |
| `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 |  |  |
| `schedule76` | null \| object |  |  |
| `schedule76.isCanadianCorporation` | boolean \| null \| number \| string |  | s.127.49(1) / s.89(1) - first limb of taxable-Canadian-corporation claimant status. T2 box 040 does not establish residence or place of incorporation. Tri-state: null = unanswered and holds the credit. |
| `schedule76.isExemptFromTaxUnderPartI` | boolean \| null \| number \| string |  | s.127.49(1) / s.89(1) - second claimant-status limb. The answer that supports the CTM claim is No; null holds the credit. |
| `schedule76.isTaxShelterInvestment` | boolean \| null \| string |  | s.127.49(10) — is the CTM property (or an interest in a person or partnership that has an interest in it) a tax shelter investment for the purpose of s.143.2? "Y" denies the credit on every Part 1 row and blocks the filing. Tri-state: null = unanswered. |
| `schedule76.part1Rows` | array \| null |  |  |
| `schedule76.part1Rows[]` | object |  |  |
| `schedule76.part1Rows[].acquisitionDate` | null \| string |  | The real acquisition date (ISO YYYY-MM-DD). Paragraph (a) of the s.127.49(1) "specified percentage" definition turns on acquisition alone, so the available-for-use date in box 110 cannot establish it. No CRA box — an engine operand. Absent, the row is disqualified with an error on box 110; supplied, s.127.49(4) takes the later of the two dates to select the 30/20/10/5/nil bracket for paragraphs (b)-(c). For a separate s.127.49(7)/(9) property, enter its deemed acquisition or payment date and retain the original property's AFU and eligibility facts. |
| `schedule76.part1Rows[].adjustments` | null \| number \| string |  | Box 120 / column 1G — Adjustments: government and non-government assistance received, receivable, or reasonably expected (s.127.49(5)(c)). REDUCES the amount eligible for ITC. Required on a claiming row: enter 0 where there is no assistance. Left blank it is unanswered, not nil, and the row claims no CTM ITC until it is entered. |
| `schedule76.part1Rows[].assistanceRepaid` | null \| number \| string |  | Box 125 / column 1H — Assistance repaid (or no longer reasonably expected) per s.127.49(7). INCREASES the amount eligible for ITC. Blank is the ordinary "nothing was repaid" state; an unreadable entry blocks. |
| `schedule76.part1Rows[].assistanceRepaymentConditionsMet` | boolean \| null \| string |  | Current-year repayment/no-longer-expected assistance, prior-year cost reduction and no s.127.49(11)(c) event. |
| `schedule76.part1Rows[].availableForUseDate` | null \| string |  | Box 110 / column 1E — Available-for-use date (yyyy/mm/dd). Per s.127.49(4), CTM property is deemed not to have been acquired until AFU; this date is one of the TWO dates that drive the specified-percentage bracket (30/20/10/5/nil) — it settles paragraphs (b)-(c) through the s.127.49(4) deeming but never paragraph (a), which belongs to `acquisitionDate` above. |
| `schedule76.part1Rows[].batteryProductionBenefitsFromContributionAgreement` | null \| string |  | s.127.49(1) "excluded property" — property used in the production of battery cells or modules where that production "has benefitted from, or can reasonably be expected to benefit from, support under a contribution agreement with the Government of Canada referred to in section 7300 of the Income Tax Regulations" (the specific agreements in Reg.7300(e)). Required for every property: Y means used in supported battery-cell/module production. N covers no battery production or no such production support. Y denies the credit and unanswered fails closed. |
| `schedule76.part1Rows[].capitalCost` | null \| number \| string |  | Box 115 / column 1F — Capital cost (excludes any amount unpaid 180 days after the year-end per s.127.49(9); add back when later paid). |
| `schedule76.part1Rows[].ccaClassNumber` | null \| string |  | Box 100 / column 1A — CCA class number (must be one of: 8, 10, 12, 38, 41, 41.2, 43, 43.1, 43.2, 53, or 56 per s.127.49(1) 'CTM property' para (d)). |
| `schedule76.part1Rows[].claimsClass431ElectricalStorage` | boolean \| null \| string |  |  |
| `schedule76.part1Rows[].claimsEligibleTransmissionEquipment` | boolean \| null \| string |  |  |
| `schedule76.part1Rows[].class431Subparagraph` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].ctmPropertyDescription` | null \| string |  | Box 105 / column 1B — CTM property description (free text). |
| `schedule76.part1Rows[].ctmPropertyScheduleIIRoute` | boolean \| null \| number \| string |  | s.127.49(1) "CTM property" para (d) — which of the seven Schedule II routes describes this property. REQUIRED on every class except 53 and 56 (the only two paragraph (d) names in whole); a route that cannot reach the entered class is a contradiction between two independent preparer assertions and denies the credit, as does an unanswered one. |
| `schedule76.part1Rows[].ctmUseCode` | boolean \| null \| number \| string |  | Box 106 / column 1C — rev-(26) CTM-use asset code. Codes 30/31 are qualifying-mineral-activity property; all other values identify the particular Reg 5202 zero-emission manufacturing asset. |
| `schedule76.part1Rows[].ctmUseIsAllOrSubstantiallyAll` | boolean \| null \| string |  | s.127.49(1) "CTM use" means "the use of a property ALL OR SUBSTANTIALLY ALL in" the listed activities, and "CTM investment tax credit" para (a) allows the specified percentage only on property acquired "for a CTM use". The box-106 asset code records WHICH activity the property serves, not that all or substantially all of its use is that activity — and s.127.49(1) "non-CTM use" counts every other use against the test. REQUIRED on every Part 1 row; "N" denies the credit and unanswered fails closed. |
| `schedule76.part1Rows[].ctmUseMineralOutputTestMet` | boolean \| null \| string |  | s.127.49(1) "CTM use" mineral OUTPUT test — separate from the chapeau all-or-substantially-all test on USE. The asset code selects the threshold: paragraph (b) (code 30) asks whether the property produces PRIMARILY qualifying materials; paragraph (c) (code 31) asks whether it produces ALL OR SUBSTANTIALLY ALL qualifying materials. Both are "determined based on the value of all commercial outputs in accordance with subsection (2.2)". REQUIRED on a mineral row; "N" denies the credit and unanswered fails closed. |
| `schedule76.part1Rows[].designedForStreetOrHighwayUse` | null \| string |  | s.127.49(1) "CTM property" para (d)(v)(A) — the Class 10 / Class 38 route excludes "any property that is designed or adapted for use on streets and highways". REQUIRED on a Class 10 or Class 38 row; "Y" denies the credit and unanswered fails closed. Irrelevant on every other class. |
| `schedule76.part1Rows[].eligibleGenerationEnergyTransmittedPct` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule76.part1Rows[].isBuilding` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].leaseMeetsQualifyingLesseeConditions` | boolean \| null \| number \| string |  | s.127.49(1) "CTM property" paragraph (c)(i)-(ii) — the lease is to a qualifying taxpayer (or a partnership all of whose members are qualifying taxpayers) AND is in the ordinary course of a business in Canada of a lessor whose principal business is selling or servicing property of that type, or leasing property, lending money and the related financing businesses the paragraph lists. Required once `leasedToAnotherPerson` is "Y"; unanswered fails closed. |
| `schedule76.part1Rows[].leasedToAnotherPerson` | boolean \| null \| number \| string |  | s.127.49(1) "CTM property" paragraph (c) — is the property "to be leased by the taxpayer to another person or a partnership"? REQUIRED on every claiming row, because it selects whether the paragraph (c) conditions apply; unanswered fails closed rather than reading as "not leased out". "Y" makes the next field required. |
| `schedule76.part1Rows[].mineralCertification` | object |  | s.127.49(2.1) independent engineer / geoscientist certification. REQUIRED on an asset-code-30 row, ignored on every other code. |
| `schedule76.part1Rows[].mineralCertification.certificationDate` | null \| string |  | Date on the certification (yyyy-mm-dd). Must fall inside the s.127.49(3) filing window for the return. |
| `schedule76.part1Rows[].mineralCertification.certificationFiledWithReturn` | boolean \| null \| string |  | Practitioner confirmation that the certification is attached to this schedule and filed with the return. "N" denies the row. |
| `schedule76.part1Rows[].mineralCertification.certifierDesignation` | boolean \| null \| number \| string |  | s.127.49(1) "independent engineer or geoscientist" paragraph (a). |
| `schedule76.part1Rows[].mineralCertification.certifierIsIndependent` | boolean \| null \| string |  | s.127.49(1) "independent engineer or geoscientist" paragraph (b) — the individual "is at all times at arm's length with, independent of, and not employed by" the corporation. "N" denies the row. |
| `schedule76.part1Rows[].mineralCertification.certifyingProfessionalName` | null \| string |  | Name of the individual signing the certification. |
| `schedule76.part1Rows[].mineralCertification.mineOrWellSite` | null \| string |  | s.127.49(2.1)(a) — the "particular mine site or well site" the certification names. |
| `schedule76.part1Rows[].mineralCertification.planPrimarilyTargetsQualifyingMaterials` | boolean \| null \| string |  | s.127.49(2.1)(b) — the property is used "in accordance with a plan that primarily targets qualifying materials". "N" denies the row. |
| `schedule76.part1Rows[].mineralValuationElection` | object |  | s.127.49(2.2) valuation-method election. REQUIRED on an asset-code-30 or -31 row, ignored on every other code. |
| `schedule76.part1Rows[].mineralValuationElection.electionDate` | null \| string |  | Date of the election (yyyy-mm-dd). |
| `schedule76.part1Rows[].mineralValuationElection.electionFiledWithReturn` | boolean \| null \| string |  | Practitioner confirmation that the election is filed together with this schedule. "N" denies the row. |
| `schedule76.part1Rows[].mineralValuationElection.valuationMethod` | boolean \| null \| number \| string |  | The elected method. Binding for all relevant tax years. |
| `schedule76.part1Rows[].otherCleanEconomyCreditClaimedOnProperty` | boolean \| null \| number \| string |  | s.127.49(5)(a)(ii) / s.127.45(5)(a)(ii) — was any other clean economy tax credit deducted BY ANY PERSON in respect of this property? REQUIRED on every claiming row: "Y" denies the credit and unanswered fails closed. The competing deduction can sit on another taxpayer's return, a partnership's or a prior year's, so no comparison inside this return can answer it; only the attestation can. |
| `schedule76.part1Rows[].previouslyUsedOrAcquiredForUseOrLease` | boolean \| null \| number \| string |  | s.127.49(1) "CTM property" paragraph (b) — property that has not "been used, or acquired for use or lease, for any purpose whatever before it was acquired by the taxpayer". REQUIRED on every claiming row: "Y" denies the credit and unanswered fails closed. |
| `schedule76.part1Rows[].propertyIdentifier` | null \| string |  | Free-text asset key shared with the other clean-economy Part 1 grids. Use the SAME key on every clean-economy schedule for the same asset: matching normalizes case and whitespace only, never a partial match. No CRA box — it exists so one property carrying a clean-economy credit on two schedules is detected, which s.127.49(5)(a)(ii) and the parallel s.127.45(5)(a)(ii) / s.127.48(10)(a)(ii) forbid. |
| `schedule76.part1Rows[].provinceOrTerritory` | null \| string |  | Box 108 / column 1D — Province or territory of the property. |
| `schedule76.part1Rows[].qualifyingMaterial` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].situatedAndUsedExclusivelyInCanada` | boolean \| null \| number \| string |  | s.127.49(1) "CTM property" paragraph (a) — property "situated in Canada and intended for use exclusively in Canada". REQUIRED on every claiming row: "N" denies the credit and unanswered fails closed, because this is a condition of the definition rather than an exception to it. |
| `schedule76.part1Rows[].specifiedPercentage` | null \| number \| string |  | Box 135 / column 1J — Specified percentage (s.127.49(1)). Engine derives from the AFU date; practitioner override surfaces a warning if it disagrees with the statutory bracket. Stored as decimal fraction 0-1 (e.g. 0.30 for 30%). |
| `schedule76.part1Rows[].storageEnergyConditionMet` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].storageExcludedCategory` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].storageFixedLocation` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].storagePrimaryPurposeConfirmed` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].transmittedEnergyFromEligibleGenerationPct` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part1Rows[].usedWithEligibleGenerationEquipment` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule76.part2Rows` | array \| null |  |  |
| `schedule76.part2Rows[]` | object |  |  |
| `schedule76.part2Rows[].availableForUseDate` | null \| string |  | Box 210 / E(26) column 2E — Original available-for-use date. The 10-year recapture window per s.127.49(11)(a) is anchored on this date (current tax year + 10 preceding calendar years). |
| `schedule76.part2Rows[].capitalCost` | null \| number \| string |  | Box 225 / E(26) column 2H — Capital cost on which the CTM ITC was deducted (denominator of the recapture-proportion formula). |
| `schedule76.part2Rows[].ccaClassNumber` | null \| string |  | Box 200 / column 2A — CCA class number of disposed/converted/exported CTM property. |
| `schedule76.part2Rows[].ctmPropertyDescription` | null \| string |  | Box 205 / column 2B — CTM property description. |
| `schedule76.part2Rows[].ctmUseCode` | boolean \| null \| number \| string |  | Box 206 / E(26) column 2C - CTM-use asset code for the property being recaptured. Required current-form evidence; never inferred from class. |
| `schedule76.part2Rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule76.part2Rows[].originalCtmItcAmount` | null \| number \| string |  | Box 215 / E(26) column 2F — Original CTM ITC amount claimed for the particular property. |
| `schedule76.part2Rows[].proceedsOrFmv` | null \| number \| string |  | Box 220 / E(26) column 2G — Proceeds of disposition (arm's length) or fair market value (non-arm's length / conversion to non-CTM use / export from Canada). Per s.127.49(12) footnote 6 + B(i)/B(ii). |
| `schedule76.part2Rows[].provinceOrTerritory` | null \| string |  | Box 208 / E(26) column 2D — Province or territory. |
| `schedule76.part2Rows[].purchaserContinuesCtmUse` | null \| string |  | s.127.49(13) — is the property "used by the purchaser for a CTM use"? |
| `schedule76.part2Rows[].purchaserIsQualifyingTaxpayer` | null \| string |  | s.127.49(13) — is the purchaser a qualifying taxpayer? |
| `schedule76.part2Rows[].purchaserPropertyWouldBeCtmPropertyButForPriorUse` | boolean \| null \| string |  | s.127.49(13): all purchaser CTM-property conditions except prior use, including no excluded property. |
| `schedule76.part2Rows[].purchaserRelationship` | null \| string |  | Relationship of the purchaser to the transferor. |
| `schedule76.part3Rows` | array \| null |  | Rev-(26) per-partnership detail. This is the authority for lines 150/240 and totals 350/355. |
| `schedule76.part3Rows[]` | object |  |  |
| `schedule76.part3Rows[].ctmItcAllocated` | null \| number \| string |  | Line 310 / column 3C - CTM ITC allocated from T5013 box 292 or letter. |
| `schedule76.part3Rows[].ctmItcRecaptureAllocated` | null \| number \| string |  | Line 315 / column 3D - CTM ITC recapture allocated from T5013 box 293 or letter. |
| `schedule76.part3Rows[].id` | null \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule76.part3Rows[].partnershipAccountNumber` | null \| string |  | Line 305 / column 3B - partnership account number. |
| `schedule76.part3Rows[].partnershipName` | null \| string |  | Line 300 / column 3A - partnership's legal name. |
| `schedule76.taxationYearEndDate` | null \| string |  |  |
| `schedule76.taxationYearStartDate` | null \| string |  | Taxation-year bounds (ISO YYYY-MM-DD). Form Part 1 footnote 2 requires the available-for-use date to be "within the current tax year", and that test runs against the real taxation period rather than its calendar label. That date gate is all the bounds do here: S76 has no s.127.46 indexed amount to prorate, since labour requirements do not apply to CTM property. Read-only display, never a preparer entry: the server imposes the return's own fiscalStart/fiscalEnd and blocks a blob carrying a different period. No CRA box. |
| `schedule78` | null \| object |  |  |
| `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.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 (59 of 365 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` |
| `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` |
| `schedule76.isCanadianCorporation` | `-1000000000000000 to 1000000000000000` |
| `schedule76.isExemptFromTaxUnderPartI` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].adjustments` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].assistanceRepaid` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].ctmPropertyScheduleIIRoute` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].ctmUseCode` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].leaseMeetsQualifyingLesseeConditions` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].leasedToAnotherPerson` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].mineralCertification.certifierDesignation` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].mineralValuationElection.valuationMethod` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].otherCleanEconomyCreditClaimedOnProperty` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].previouslyUsedOrAcquiredForUseOrLease` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].situatedAndUsedExclusivelyInCanada` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part1Rows[].specifiedPercentage` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part2Rows[].capitalCost` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part2Rows[].ctmUseCode` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part2Rows[].originalCtmItcAmount` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part2Rows[].proceedsOrFmv` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part3Rows[].ctmItcAllocated` | `-1000000000000000 to 1000000000000000` |
| `schedule76.part3Rows[].ctmItcRecaptureAllocated` | `-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 (133)

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 |  |
| `warnings[]` | object |  |
| `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[].code` | null \| string |  |
| `warnings[].message` | string |  |
| `warnings[].producers` | array \| boolean \| null \| number \| object \| string |  |
| `warnings[].severity` | 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[].anchor_row` | 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[].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_total_col_1k` | number |  |
| `amount_b_total_col_2j` | number |  |
| `continuation_rows.part1Rows[].adjustments` | number |  |
| `continuation_rows.part1Rows[].amountEligibleForItc` | number |  |
| `continuation_rows.part1Rows[].assistanceRepaid` | number |  |
| `continuation_rows.part1Rows[].availableForUseDate` | null \| string |  |
| `continuation_rows.part1Rows[].capitalCost` | number |  |
| `continuation_rows.part1Rows[].ccaClassNumber` | null \| string |  |
| `continuation_rows.part1Rows[].ctmItcAmount` | number |  |
| `continuation_rows.part1Rows[].ctmPropertyDescription` | null \| string |  |
| `continuation_rows.part1Rows[].ctmUseCode` | null \| string |  |
| `continuation_rows.part1Rows[].propertyIdentifier` | null \| string |  |
| `continuation_rows.part1Rows[].provinceOrTerritory` | null \| string |  |
| `continuation_rows.part1Rows[].specifiedPercentage` | number |  |
| `continuation_rows.part2Rows[].availableForUseDate` | null \| string |  |
| `continuation_rows.part2Rows[].capitalCost` | number |  |
| `continuation_rows.part2Rows[].ccaClassNumber` | null \| string |  |
| `continuation_rows.part2Rows[].ctmItcRecaptured` | number |  |
| `continuation_rows.part2Rows[].ctmPropertyDescription` | null \| string |  |
| `continuation_rows.part2Rows[].ctmUseCode` | null \| string |  |
| `continuation_rows.part2Rows[].originalCtmItcAmount` | number |  |
| `continuation_rows.part2Rows[].proceedsOrFmv` | number |  |
| `continuation_rows.part2Rows[].proportionRecaptured` | number |  |
| `continuation_rows.part2Rows[].provinceOrTerritory` | null \| string |  |
| `continuation_rows.part3Rows[].ctmItcAllocated` | number |  |
| `continuation_rows.part3Rows[].ctmItcRecaptureAllocated` | number |  |
| `continuation_rows.part3Rows[].partnershipAccountNumber` | null \| string |  |
| `continuation_rows.part3Rows[].partnershipName` | null \| string |  |
| `fired_gates` | object |  |
| `line_100` | null \| number \| string |  |
| `line_105` | null \| number \| string |  |
| `line_106` | null \| number \| string |  |
| `line_108` | null \| number \| string |  |
| `line_110` | null \| number \| string |  |
| `line_115` | number |  |
| `line_120` | number |  |
| `line_125` | number |  |
| `line_130` | number |  |
| `line_135` | number |  |
| `line_145` | number |  |
| `line_150` | number |  |
| `line_155` | number |  |
| `line_200` | null \| number \| string |  |
| `line_205` | null \| number \| string |  |
| `line_206` | null \| number \| string |  |
| `line_208` | null \| number \| string |  |
| `line_210` | null \| number \| string |  |
| `line_215` | number |  |
| `line_220` | number |  |
| `line_225` | number |  |
| `line_230` | number |  |
| `line_235` | number |  |
| `line_240` | number |  |
| `line_245` | number |  |
| `line_300` | null \| number \| string |  |
| `line_305` | null \| number \| string |  |
| `line_310` | number |  |
| `line_315` | number |  |
| `line_350` | number |  |
| `line_355` | number |  |
| `missing_required[]` | string |  |
| `part1Rows[].adjustments` | number |  |
| `part1Rows[].amountEligibleForItc` | number |  |
| `part1Rows[].assistanceRepaid` | number |  |
| `part1Rows[].availableForUseDate` | null \| string |  |
| `part1Rows[].capitalCost` | number |  |
| `part1Rows[].ccaClassNumber` | null \| string |  |
| `part1Rows[].ctmItcAmount` | number |  |
| `part1Rows[].ctmPropertyDescription` | null \| string |  |
| `part1Rows[].ctmUseCode` | null \| string |  |
| `part1Rows[].propertyIdentifier` | null \| string |  |
| `part1Rows[].provinceOrTerritory` | null \| string |  |
| `part1Rows[].specifiedPercentage` | number |  |
| `part2Rows[].availableForUseDate` | null \| string |  |
| `part2Rows[].capitalCost` | number |  |
| `part2Rows[].ccaClassNumber` | null \| string |  |
| `part2Rows[].ctmItcRecaptured` | number |  |
| `part2Rows[].ctmPropertyDescription` | null \| string |  |
| `part2Rows[].ctmUseCode` | null \| string |  |
| `part2Rows[].originalCtmItcAmount` | number |  |
| `part2Rows[].proceedsOrFmv` | number |  |
| `part2Rows[].proportionRecaptured` | number |  |
| `part2Rows[].provinceOrTerritory` | null \| string |  |
| `part3Rows[].ctmItcAllocated` | number |  |
| `part3Rows[].ctmItcRecaptureAllocated` | number |  |
| `part3Rows[].partnershipAccountNumber` | null \| string |  |
| `part3Rows[].partnershipName` | null \| string |  |
| `part3_total_itc_line_350` | number |  |
| `part3_total_recapture_line_355` | number |  |
| `s31_feed_ctm_itc` | number |  |
| `s31_feed_recapture` | number |  |
| `total_itc_line_155` | number |  |
| `total_recapture_line_245` | number |  |
