# form_aggregates

Form aggregates

- Kind: batch
- Program: T2 Corporation Income Tax Return
- Supported tax years: 2011–2027
- Strict profile: form_aggregates_v1
- Payload schema version: 0.2.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": [
    "form_aggregates"
  ],
  "inputs": {
    "taxYear": 2025,
    "formId": "t2jacket",
    "seeded": {
      "300": 500000,
      "311": 20000,
      "320": 30000,
      "331": 50000,
      "355": 10000
    }
  }
}
```

## Input cells (6)

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. |
| `formId` | string | strict | The form whose aggregate boxes should be evaluated. |
| `revision` | null \| string |  | Optional configured form revision. |
| `seeded` | object | strict | Entered values keyed by form line code. |
| `taxYear` | integer \| string | always |  |

### Strict profile accepted values (5 of 6 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` |
| `formId` | `one of "schedule1", "schedule10", "schedule100", "schedule101", "schedule11", "schedule12", "schedule125", "schedule13", "schedule130", "schedule14", "schedule141", "schedule15", "schedule150", "schedule151", "schedule16", "schedule17", "schedule18", "schedule19", "schedule2", "schedule20", "schedule21", "schedule22", "schedule23", "schedule24", "schedule25", "schedule27", "schedule28", "schedule29", "schedule3", "schedule300", "schedule301", "schedule302", "schedule303", "schedule304", "schedule305", "schedule306", "schedule307", "schedule308", "schedule309", "schedule31", "schedule310", "schedule311", "schedule321", "schedule322", "schedule33", "schedule34", "schedule340", "schedule341", "schedule342", "schedule343", "schedule345", "schedule346", "schedule347", "schedule348", "schedule349", "schedule35", "schedule350", "schedule351", "schedule352", "schedule353", "schedule360", "schedule365", "schedule366", "schedule367", "schedule37", "schedule38", "schedule380", "schedule381", "schedule383", "schedule384", "schedule385", "schedule387", "schedule388", "schedule389", "schedule39", "schedule390", "schedule391", "schedule392", "schedule393", "schedule394", "schedule4", "schedule400", "schedule402", "schedule403", "schedule404", "schedule410", "schedule411", "schedule42", "schedule421", "schedule426", "schedule427", "schedule428", "schedule429", "schedule43", "schedule430", "schedule432", "schedule44", "schedule440", "schedule442", "schedule443", "schedule444", "schedule45", "schedule46", "schedule460", "schedule461", "schedule480", "schedule481", "schedule49", "schedule490", "schedule5", "schedule50", "schedule500", "schedule501", "schedule502", "schedule504", "schedule506", "schedule507", "schedule508", "schedule510", "schedule511", "schedule512", "schedule513", "schedule514", "schedule515", "schedule516", "schedule517", "schedule524", "schedule525", "schedule53", "schedule54", "schedule55", "schedule550", "schedule552", "schedule554", "schedule556", "schedule558", "schedule56", "schedule560", "schedule562", "schedule564", "schedule566", "schedule568", "schedule569", "schedule570", "schedule572", "schedule58", "schedule59", "schedule6", "schedule63", "schedule65", "schedule67", "schedule68", "schedule7", "schedule71", "schedule72", "schedule73", "schedule74", "schedule75", "schedule76", "schedule78", "schedule8", "schedule88", "schedule89", "schedule9", "schedule91", "schedule97", "t2057", "t2058", "t2059", "t2142", "t2jacket", "t2short", "t661", "t666"` |
| `revision` | `1 to 64 characters` |
| `taxYear` | `matches ^\s*(?:1[0-9]{3}\|2(?:0(?:[0-1][0-9]{1}\|2[0-7])))\s*$; 1000 to 2027` |

## Output cells (8)

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

| Cell | Types | Description |
| --- | --- | --- |
| `evaluated` | object |  |
| `projection.boxes` | object |  |
| `projection.formId` | string |  |
| `projection.invalidSeeds` | object |  |
| `projection.pdfAsset` | string |  |
| `projection.revision` | string |  |
| `projection.rowOrder[]` | string |  |
| `projection.warnings[]` | string |  |
