# adjustment

Adjustment template

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2011–2027
- Strict profile: adjustment_v1
- Payload schema version: 0.4.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": [
    "adjustment"
  ],
  "inputs": {
    "taxYear": 2025,
    "fiscalStart": "2025-01-01",
    "fiscalEnd": "2025-12-31",
    "templateId": "meals-entertainment",
    "rows": [],
    "sectionRows": {
      "fifty_pct": [
        {
          "description": "Business meal",
          "amountCY": 1000,
          "reasonableAmount": 1000
        }
      ]
    }
  }
}
```

## Input cells (28)

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 |
| --- | --- | --- | --- |
| `fiscalEnd` | 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` | 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. |
| `province` | string |  |  |
| `rows[]` | object | strict |  |
| `schedule50` | null \| object |  |  |
| `schedule50.rows[].businessNumber` | array \| boolean \| null \| number \| object \| string |  | Box 200 — BN or partnership account number (9 digits + 2 letters + 4 digits format), or "NR" if not registered. The printed form does not limit NR to non-residents. Populated only when shareholderType is a corporation or partnership; null otherwise. |
| `schedule50.rows[].id` | null \| string |  | Stable row identity for retaining the current shareholder row through edits and row reordering. |
| `schedule50.rows[].name` | array \| boolean \| null \| number \| object \| string |  | Box 100 — shareholder name, without the bracketed type suffix; the suffix is carried separately in `shareholderType` and added back on export. |
| `schedule50.rows[].percentCommonShares` | null \| number \| string |  | Box 400 — percentage of votes for common shares, 0-100. Fractional percentage points remain literal (0.25 means 0.25%). |
| `schedule50.rows[].percentPreferredShares` | null \| number \| string |  | Box 500 — percentage of votes for preferred shares, 0-100. Fractional percentage points remain literal. |
| `schedule50.rows[].shareholderType` | null \| string |  | Bracketed type indicator from box 100 — stored as an enum on the row so the validator can cross-check identifier-type consistency (corp/partnership → BN; individual → SIN; trust → trust number). |
| `schedule50.rows[].socialInsuranceNumber` | array \| boolean \| null \| number \| object \| string |  | Box 300 — SIN (9 digits). Populated only when shareholderType is individual; null otherwise. |
| `schedule50.rows[].trustNumber` | array \| boolean \| null \| number \| object \| string |  | Box 350 — Trust number (T followed by 8 digits). Populated only when shareholderType is trust; null otherwise. |
| `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[].bookValueCapitalStock` | null \| number \| string |  | Box 700 — Submitted book value of capital stock. Filemark preserves a numeric sign but does not infer accounting measurement, impairment, or tax cost from the form label. |
| `schedule9.rows[].businessNumber` | array \| boolean \| null \| number \| object \| string |  | Box 300 — Nine-digit BN, a compatible existing 15-character CRA program-account identifier, or "NR" when the corporation is not registered or has no BN. NR does not establish residence. |
| `schedule9.rows[].commonShareCount` | null \| number \| string |  | Box 500 — Number of common shares the filing corp owns in the listed corp. Filemark requires a non-negative integer. |
| `schedule9.rows[].commonSharePercent` | null \| number \| string |  | Box 550 — % of common shares the filing corp owns. Filemark accepts 0-100 in percent units with at most two decimals; 0.25 means 0.25%. |
| `schedule9.rows[].countryOfResidence` | array \| boolean \| null \| number \| object \| string |  | Box 200 — "Country of residence (other than Canada)". A blank or non-blank value does not itself prove residence. |
| `schedule9.rows[].id` | array \| boolean \| null \| number \| object \| string |  | Stable ordinary row identity retained through selection and reordering. |
| `schedule9.rows[].name` | array \| boolean \| null \| number \| object \| string |  | Box 100 — Name of related/associated corporation. |
| `schedule9.rows[].nativeGroupMemberId` | array \| boolean \| null \| number \| object \| string |  |  |
| `schedule9.rows[].preferredShareCount` | null \| number \| string |  | Box 600 — Number of preferred shares the filing corp owns. Filemark requires a non-negative integer. |
| `schedule9.rows[].preferredSharePercent` | null \| number \| string |  | Box 650 — % of preferred shares the filing corp owns. Same Filemark percent-unit and precision policy as box 550. |
| `schedule9.rows[].relationshipCode` | null \| number |  | Box 400 — Relationship code: 1 = Parent 2 = Subsidiary 3 = Associated 4 = Related but not associated These are the form's literal labels. The form does not define the parent/subsidiary direction or a lowest-applicable-code rule. |
| `sectionRows` | object |  | Workpaper rows grouped by section identifier. |
| `taxYear` | integer \| string | always |  |
| `templateId` | string | strict | The workpaper template to calculate. |

### Strict profile accepted values (15 of 28 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 |
| --- | --- |
| `fiscalEnd` | `date (YYYY-MM-DD); 10 to 10 characters` |
| `fiscalStart` | `date (YYYY-MM-DD); 10 to 10 characters` |
| `province` | `0 to 20000 characters` |
| `schedule50.rows[].id` | `0 to 20000 characters` |
| `schedule50.rows[].percentCommonShares` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `schedule50.rows[].percentPreferredShares` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `schedule50.rows[].shareholderType` | `one of "corporation", "partnership", "individual", "trust", null` |
| `schedule9.rows[].bookValueCapitalStock` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `schedule9.rows[].commonShareCount` | `0 to 1000000000000000; 0 to 20000 characters` |
| `schedule9.rows[].commonSharePercent` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `schedule9.rows[].preferredShareCount` | `0 to 1000000000000000; 0 to 20000 characters` |
| `schedule9.rows[].preferredSharePercent` | `-1000000000000000 to 1000000000000000; 0 to 20000 characters` |
| `schedule9.rows[].relationshipCode` | `one of 1, 2, 3, 4, null` |
| `taxYear` | `matches ^\s*(?:1[0-9]{3}\|2(?:0(?:[0-1][0-9]{1}\|2[0-7])))\s*$; 1000 to 2027` |
| `templateId` | `0 to 20000 characters` |

## Output cells (7)

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

| Cell | Types | Description |
| --- | --- | --- |
| `amount` | number |  |
| `description` | string |  |
| `provisional` | boolean |  |
| `ready` | boolean |  |
| `status` | string |  |
| `type` | null \| string |  |
| `warnings[].message` | string |  |
