sbd
Filemark T2 batch computation internal aggregate
- Kind
- batch
- Supported tax years
- —
- Strict profile
- sbd_exact_2025_default_branch_v1
- Payload schema version
- 8.0.0
- Dependencies (run automatically)
- division_c, schedule21, schedule23, schedule28, schedule33, schedule34, schedule35, schedule49, schedule5, schedule7, schedule9
Example request
Send this body to POST /api/v1/computations/batch. It satisfies the strict profile, so it works with or without the payloadContract selector.
{
"compute": [
"sbd"
],
"inputs": {
"schedule1": {},
"taxYear": 2025,
"fiscalStart": "2025-01-01",
"fiscalEnd": "2025-12-31",
"isCCPC": true,
"daysInYear": 365
}
}Input cells (32)
Paths are relative to the request’s inputs object; [] marks an array element.
Required says when a cell must be present. Always means every request needs it: the default boundary rejects the call when the cell is omitted or null. Strict means only a request that sends this target’s payloadContract selector needs it. See Run computations for the default boundary.
These cells are everything this target accepts. A member that is not published here, or is sent with the wrong JSON type, fails the call with a 400 naming each failing cell.
| Cell | Types | Required |
|---|---|---|
| associatedGroup.allocated_limit | integer | strict |
| associatedGroup.filer_bn_root | string | strict |
| associatedGroup.matched_business_number | string | strict |
| associatedGroup.source | string | strict |
| currentYearTCECTaxable capital employed in Canada for the current taxation year. It must be finite and non-negative. | null | number | string | |
| currentYearTCECMetaProvenance for currentYearTCEC. When sent, all four members must be present and correct: basis is current_tax_year, asOf is the current taxation-year end, source names where the figure came from, and confirmed is true. Anything less leaves the amount an unattested assertion. | null | object | |
| daysInYearInclusive day count of the taxation year. It must equal the fiscalStart-to-fiscalEnd span, counting both end days, so a leap year states 366. Required for the same reason as fiscalStart; the count reconciles the bounds and never constructs them. | integer | strict |
| fiscalEndLast day of the taxation year, as YYYY-MM-DD, on or after fiscalStart. Its calendar year must equal taxYear. Required for the same reason as fiscalStart. | null | string | strict |
| fiscalStartFirst day of the taxation year, as YYYY-MM-DD. Required because this target's dependency closure reaches part_i_tax, whose rates and limits are day-weighted; ITA s.249(1)(a) makes the taxation year the fiscal period, and the engine will not invent calendar-year bounds. | null | string | strict |
| functionalCurrencyContextThe 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, a firstDayRate object with rate, spotRateSource and firstDayDate, and optional statutoryThresholdRoundingOverrides. | null | object | |
| isCCPCThe corporation was a Canadian-controlled private corporation (ITA s.125(7) definition) throughout the taxation year. | boolean | |
| priorYearGroupTCECTaxable capital employed in Canada for the preceding period required by ITA s.125(5.1)(a). The accompanying metadata basis decides whether it is the corporation's own preceding taxation year or the associated group's preceding calendar year. An explicit zero is valid; omitting it fails closed with a full capital grind. | null | number | string | |
| priorYearGroupTCECMetaProvenance for priorYearGroupTCEC. When sent, basis is standalone_preceding_tax_year or associated_group_preceding_calendar_year, asOf is the exact period end that basis implies, source names where the figure came from, and confirmed is true. | null | object | |
| sbd.aaiiGrind | object | |
| sbd.abiS7 Part 6 amount DD — income eligible for the SBD (s.125(1)(a)). | number | |
| sbd.baseBusinessLimit | number | |
| sbd.eligibilityReason | null | string | |
| sbd.finalBusinessLimit | number | |
| sbd.isCcpcCorporation-type fact; never infer this from SBD eligibility. | boolean | |
| sbd.isEligible | boolean | |
| sbd.isPSB | boolean | |
| sbd.provisional | boolean | |
| sbd.s89_11ElectionActivePresent on the CCPC branch when the current-year election fact is known. | boolean | |
| sbd.sbd | number | |
| sbd.sbdEligibleIncome | number | |
| sbd.sbdRate | number | |
| sbd.shortYearProration | null | number | |
| sbd.taxableIncome | number | |
| sbd.warnings | array | |
| schedule1 | object | strict |
| taxYearFour-digit taxation year accepted by the batch reader. Historical applicability is decided by the requested form; years after 2027 fail at the shared verified-rate horizon. | number | string | always |
| wasAssociatedInPrecedingYearWhether 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. Send null deliberately when unknown: the engine then blocks rather than inferring a period. | null | boolean |
Strict profile accepted values (9 of 32 cells)
These values apply only when the request sends this target’s payloadContract selector. A cell marked pinned must equal the value shown to satisfy the strict profile. On the default boundary the same cell accepts any value of its published type.
| Cell | Accepted values |
|---|---|
| associatedGroup.allocated_limit | -1000000000000000 to 1000000000000000 |
| associatedGroup.filer_bn_root | 0 to 20000 characters |
| associatedGroup.matched_business_number | 0 to 20000 characters |
| associatedGroup.source | 0 to 20000 characters |
| daysInYear | 1 to 1000000000000000 |
| fiscalEnd | date (YYYY-MM-DD); 10 to 10 characters |
| fiscalStart | date (YYYY-MM-DD); 10 to 10 characters |
| sbd.eligibilityReason | one of "s89_11_election" |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (82)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| aaiiGrind.aaii | number |
| aaiiGrind.grindedLimit | number |
| aaiiGrind.reduction | number |
| abi | number |
| baseBusinessLimit | number |
| businessLimitAssigned | number |
| businessLimitAssignmentApplied | number |
| businessLimitBeforeAssignment | number |
| businessLimitDeemedNilBy256_2 | array | boolean | null | number | object | string |
| businessLimitSource | string |
| capitalGrind.authoritativeInputProvided | boolean |
| capitalGrind.basisMode | string |
| capitalGrind.ceiling | number |
| capitalGrind.floor | number |
| capitalGrind.grindedLimit | number |
| capitalGrind.inputMetadata.asOf | array | boolean | null | number | object | string |
| capitalGrind.inputMetadata.basis | array | boolean | null | number | object | string |
| capitalGrind.inputMetadata.confirmed | boolean |
| capitalGrind.inputMetadata.expectedAsOf | string |
| capitalGrind.inputMetadata.expectedBasis | string |
| capitalGrind.inputMetadata.source | array | boolean | null | number | object | string |
| capitalGrind.inputRequired | boolean |
| capitalGrind.inputSource | string |
| capitalGrind.line415Factor | array | boolean | null | number | object | string |
| capitalGrind.line415FactorDenominator | null | number |
| capitalGrind.reduction | number |
| capitalGrind.reportedTcec | array | boolean | null | number | object | string |
| capitalGrind.tcec | number |
| capitalGrind.line415FactorCurrency | string |
| capitalGrind.line415FactorRail | string |
| eligibilityReason | array | boolean | null | number | object | string |
| finalBusinessLimit | number |
| hypotheticalSbdEligibleIncome | array | boolean | null | number | object | string |
| isEligible | boolean |
| isPSB | boolean |
| matchedSchedule23BusinessNumber | null | string |
| provisional | boolean |
| s125_5aFirstYearLimitCap | array | boolean | null | number | object | string |
| s89_11ElectionActive | boolean |
| sbd | number |
| sbdAssignment.activeRowCount | integer |
| sbdAssignment.appliedToBusinessLimit | number |
| sbdAssignment.businessLimitAssigned | number |
| sbdAssignment.errors | array |
| sbdAssignment.incomePaidClauseBTotal | number |
| sbdAssignment.valid | boolean |
| sbdAssignment.assigningCorpTaxYearEnd | string |
| sbdEligibleIncome | number |
| sbdRate | number |
| sbdTaxableIncome405 | number |
| shortYearProration | array | boolean | null | number | object | string |
| taxableIncome | number |
| filingPropositions[].schemaVersion | integer |
| filingPropositions[].propositionId | string |
| filingPropositions[].state | string |
| filingPropositions[].filingDisposition | string |
| filingPropositions[].targets[] | string |
| filingPropositions[].evidence[] | string |
| warnings[].code | string |
| warnings[].message | string |
| warnings[].severity | string |
| warnings[].source | string |
| warnings[].upstreamSource | string |
| warnings[].citation.applies_to_boxes[] | string |
| warnings[].citation.cra_text_verbatim | string |
| warnings[].citation.form_id | string |
| warnings[].citation.form_revision | string |
| warnings[].citation.gate_id | string |
| warnings[].citation.rule | string |
| warnings[].citation.source | string |
| warnings[].citation.source_url | string |
| warnings[].citation.verified_at | string |
| warnings[].gate_id | string |
| matchedSchedule23Allocation | null | number |
| associationReconciliation.associated | array |
| associationReconciliation.findings | array |
| associationReconciliation.reconciled | boolean |
| associationReconciliation.sources.corporate_group | boolean |
| associationReconciliation.sources.schedule23 | boolean |
| associationReconciliation.sources.schedule9 | boolean |
| s125_5aFirstYearLimitIsPreShortYearProration | array | boolean | null | number | object | string |
| isCcpc | boolean |