schedule71
T2 Corporation Income Tax Return
- Kind
- batch
- Supported tax years
- 2011 and later
- Strict profile
- s71_2024_single_tier_worked_example_target_value_v1
- Payload schema version
- 0.11.0
- Dependencies (run automatically)
- none
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": [
"schedule71"
],
"inputs": {
"schedule71": {
"becameBankruptInYear": false,
"corpTaxYearEnd": "2025-12-31",
"corpTaxYearStart": "2025-01-01",
"isMultiTierPartnership": false,
"isProfessionalCorp": false,
"multiTierAlignmentYear1Suspension": false,
"partnershipIsForeignAffiliateSurrogate": false,
"partnerships": [
{
"continuousMembershipSinceBeforeMarch22_2011": true,
"corpSharePercentage": 50,
"particularPeriodEnd": "2026-01-31",
"particularPeriodStart": "2025-02-01",
"partnershipBN": "123456782RZ0001",
"partnershipFYEndInYear": "2025-01-31",
"partnershipFYStartInYear": "2024-02-01",
"partnershipName": "Cedar Ridge Operations LP",
"significantInterestConfirmed": true,
"var_A_share_of_income_and_tcg": 1000000,
"var_A_tcg_component": 0,
"var_B_acl_component": 0,
"var_B_share_of_loss_and_acl": 0,
"var_E_designated_qre": 0,
"var_F_discretionary": 0,
"corpEntitledToShareAtParticularPeriodEnd": true,
"var_A_active_business_component": 1000000,
"var_A_property_component": 0,
"var_A_other_component": 0
}
]
},
"taxYear": 2025
}
}Input cells (68)
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 |
|---|---|---|
| schedule71.becameBankruptInYears.34.2(7) carve-out: the corporation became bankrupt in the year, so neither the ASPA inclusion nor the s.34.2(3) new-partner designation applies. | boolean | null | strict |
| schedule71.corpFilingDueDateYYYY-MM-DD override of the ITA 150(1)(a) filing-due date the engine derives (six months after the tax-year end, CRA day-of-month rule, rolled off a holiday). s.34.2(3) is available only where the particular period ends on or before that date. | null | string | |
| schedule71.corpTaxYearEnd | null | string | strict |
| schedule71.corpTaxYearStartYYYY-MM-DD. Used for the variable-C / 3C day computations. | null | string | strict |
| schedule71.isMultiTierPartnershipScope check: the partnership is itself a member of another partnership (s.102(2), s.249.1(1)(c)); multi-tier partnerships use Schedule 72, not Schedule 71. | boolean | null | strict |
| schedule71.isProfessionalCorps.34.2(2) chapeau carve-out: a professional corporation accrues stub-period income under s.34.1 instead of the ASPA regime. | boolean | null | strict |
| schedule71.multiTierAlignmentYear1Suspensions.34.2(9): ASPA is suspended for taxation years preceding the year that includes the end of the first aligned fiscal period. | boolean | null | strict |
| schedule71.partnershipIsForeignAffiliateSurrogates.34.2(8) carve-out: s.34.2 does not apply in computing FAPI or foreign-affiliate surplus; the accrual flows through the surplus computation instead. | boolean | null | strict |
| schedule71.partnerships | array | |
| schedule71.partnerships[].actual_stub_period_accrual_s343Form 4K analogue — actual stub period accrual (s.34.3(1) A-side). | null | number | |
| schedule71.partnerships[].avg_daily_prescribed_rate_reg_4301_aForm 4S — average daily Reg 4301(a) rate (daily, NOT annualized). Engine blocks the shortfall with an error when missing. | null | number | |
| schedule71.partnerships[].avg_daily_prescribed_rate_reg_4301_a_sourceWhere a practitioner-entered amount 4S daily rate comes from, as free text. ITA s.34.3(1) variable D is determined by reference to the rate prescribed under Regulation 4301(a), so an entered rate is admissible only for a variable-C window no published quarter reaches, and then only with a named source. Blank or omitted leaves the rate unusable and blocks the shortfall. | null | string | |
| schedule71.partnerships[].base_year_aspa_inclusionBase-year ASPA inclusion under s.34.2(2) (s.34.3(1) B). | null | number | |
| schedule71.partnerships[].base_year_aspa_with_F_set_nilForm amount 4N — base-year ASPA recomputed with F = nil (s.34.3(1) A-side cap). When null the engine derives it as amount 4L + amount 4M per the form face, floored at zero. | null | number | |
| schedule71.partnerships[].base_year_var_F_discretionaryForm amount 4M — discretionary amount designated in the BASE year (base-year amount 2K). Carried forward automatically; supplied so amount 4N can be derived. | null | number | |
| schedule71.partnerships[].box_3A_designated_in_return_before_filing_due_date3A support — designated in return before filing-due date? | boolean | null | |
| schedule71.partnerships[].box_3A_discretionary_designationForm amount 3A — discretionary designation by the corp. | null | number | |
| schedule71.partnerships[].box_3B_corp_income_particular_periodForm amount 3B — corp income from particular period (excl s.112/113). | null | number | |
| schedule71.partnerships[].box_3C_day_ratioForm amount 3C — day-ratio override (auto from dates if null). | null | number | |
| schedule71.partnerships[].continuousMembershipSinceBeforeMarch22_2011s.34.2(13)(a) transitional condition: the corporation has been a member of the partnership continuously since before March 22, 2011; required for the qualifying transitional income reserve. | boolean | null | strict |
| schedule71.partnerships[].corpBankruptOrDissolvedOtherThanS881 | boolean | null | |
| schedule71.partnerships[].corpEntitledToShareAtParticularPeriodEndWhether, at the end of the year, the corporation is entitled to a share of the partnership's income, loss, taxable capital gain or allowable capital loss for the fiscal period — the ITA 34.2(2)(c) condition. Strict tri-state: true admits the row's ASPA, false applies the (2)(c) carveout and zeroes it, and an absent answer withholds the ASPA and blocks. The answer is a submitted practitioner fact and is not proof that the corporation was so entitled. | boolean | null | strict |
| schedule71.partnerships[].corpNonResidentNoPE | boolean | null | |
| schedule71.partnerships[].corpSharePercentageBox 230 — corp share % at end of last FY (0-100). | null | number | strict |
| schedule71.partnerships[].corpTaxExempt | boolean | null | |
| schedule71.partnerships[].corp_income_before_reserveCap (iii) — income before claiming the reserve. | null | number | |
| schedule71.partnerships[].days_base_year_end_to_ty_endForm 4Q — days from day-after-base-year-end to TY-end. | null | number | |
| schedule71.partnerships[].deemedContinuingPartnerUnderS342_14s.34.2(14) deemed-continuity exception for a successor partner. | boolean | null | |
| schedule71.partnerships[].eligibleAlignmentIncomeOne-time eligible alignment income (persists year-over-year). | null | number | |
| schedule71.partnerships[].firstQtiTaxationYearEndYearCalendar year in which the corporation's FIRST taxation year with qualifying transitional income ends. Selects s.34.2(1) paragraph (a) 2011, (b) 2012 or (c) 2013 outright; null derives it from qtiYearIndex. | null | number | |
| schedule71.partnerships[].firstTaxationYearS342_17AppliesEndYearITA 34.3(2)(b) — calendar year in which the corporation's first taxation year to which s.34.2(17) applies ends. Consulted only when this row carries QTI; ITA 34.2(16) fixes the historical year, so an absent answer blocks rather than assuming the condition is met. | null | number | |
| schedule71.partnerships[].firstYearAspaForQtiFirst-year ASPA component of the QTI base. | null | number | |
| schedule71.partnerships[].isNewCorpMemberInParticularPeriod | boolean | null | |
| schedule71.partnerships[].noFiscalPeriodEndedInYearTrue iff no FY ended in TY (AoC short year / amalgamation). Per CRA T.I. 2014-0539191E5 — row ASPA = 0. | boolean | null | |
| schedule71.partnerships[].particularPeriodEndParticular [stub] period end (FY ending after TY). | null | string | strict |
| schedule71.partnerships[].particularPeriodStartBox 225 — particular [stub] period start (FY beginning in TY). | null | string | strict |
| schedule71.partnerships[].partnershipBNBox 210 — full 15-character RZ partnership account. | null | string | strict |
| schedule71.partnerships[].partnershipBusinessContinued | boolean | null | |
| schedule71.partnerships[].partnershipFYEndInYearBox 220 — partnership FY end (last FY ending in TY). YYYY-MM-DD. | null | string | strict |
| schedule71.partnerships[].partnershipFYStartInYearPartnership FY START, used to derive variable D (box 255). There is no 365-day fallback: send this or `var_D_days_in_FYs_ending_in_year`, or the row is blocked. | null | string | strict |
| schedule71.partnerships[].partnershipNameBox 200 — partnership's name. | null | string | strict |
| schedule71.partnerships[].post_2012_s112_s113_dividend_deductionsCap (iii) — post-2012 s.112/s.113 dividend deductions. | null | number | |
| schedule71.partnerships[].qtiComputedUsingMaximumDeductionsS342_15Confirms the s.34.2(15) maximum-deductions premise for QTI. | boolean | null | |
| schedule71.partnerships[].qtiReserveClaimedRowBox 115 input — QTI reserve claimed (least-of-three capped). | null | number | |
| schedule71.partnerships[].qtiTcgComponentThe taxable-capital-gain component of this row's qualifying transitional income for the ITA 34.2(11)(b)(ii) reserve-character split. Enter 0 when the historical QTI contained no taxable capital gains; absence is unanswered when a reserve is claimed. | null | number | |
| schedule71.partnerships[].qtiYearIndex0 = alignment year, ..., 5+ = fully phased out. Ordinal only — the s.34.2(1) "specified percentage" is fixed by two CALENDAR years, so the engine resolves the paragraph from the corporation's TY-end year together with firstQtiTaxationYearEndYear (or this index). No paragraph reaches a particular year after 2017. | null | number | |
| schedule71.partnerships[].recentMembershipForReserveAvoidance | boolean | null | |
| schedule71.partnerships[].relatedPartyAggregatedSharePercentageRelated-party-aggregated share % for the significant-interest look-through (s.34.2(1)). | null | number | |
| schedule71.partnerships[].s342_16_17_qti_adjustment_amounts.34.2(16)/(17) post-filing adjustment (adds to cap (ii)). | null | number | |
| schedule71.partnerships[].significantInterestConfirmedPractitioner confirmation of the s.34.2(1) significant-interest test: the corporation, together with related or affiliated persons, holds more than 10 percent of the partnership's income entitlement. | boolean | null | strict |
| schedule71.partnerships[].var_A_active_business_componentThe active-business share of this row's variable A character split. ITA 34.2(5)(a)(i) gives the adjusted stub period accrual the same character, in the same proportions, as the income the partnership allocated to the corporation — an allocation fact the corporation cannot infer. Send all three shares: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | null | number | |
| schedule71.partnerships[].var_A_includes_s112_s113_dividendsError-flag: A includes s.112/s.113 dividends (engine blocks). | boolean | null | |
| schedule71.partnerships[].var_A_other_componentThe other-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | null | number | |
| schedule71.partnerships[].var_A_property_componentThe property-income share of this row's variable A character split, on the same ITA 34.2(5)(a)(i) terms as the active-business share. Send all three: an absent breakdown is UNKNOWN and blocks rather than filing the whole non-capital amount on T2 SCH 73 line 270. | integer | null | number | |
| schedule71.partnerships[].var_A_share_of_income_and_tcgBox 240 — A: corp share of income + TCG for FYs ending in TY (excl s.112/113 dividends; form amounts 2A + 2D). | null | number | string | strict |
| schedule71.partnerships[].var_A_tcg_componentTCG component inside A (drives the s.34.2(5)(a) character split and the B-side ACL cap). | null | number | strict |
| schedule71.partnerships[].var_B_acl_componentACL component inside B (engine caps it at TCG-in-A). | null | number | strict |
| schedule71.partnerships[].var_B_includes_111_1_e_lp_lossesError-flag: B nets s.111(1)(e) LP-loss carryforwards (engine blocks per CRA T.I. 2018-0788161E5 — those go to Schedule 4). | boolean | null | |
| schedule71.partnerships[].var_B_share_of_loss_and_aclBox 245 — B: corp share of loss + ACL (form amounts 2B + 2E). | null | number | strict |
| schedule71.partnerships[].var_C_days_in_bothBox 250 — C: days in both TY and stub period (auto from dates when null). | null | number | |
| schedule71.partnerships[].var_D_days_in_FYs_ending_in_yearBox 255 — D: days in partnership FYs ending in TY (auto from partnershipFYStartInYear when null). There is NO default: T2 SCH 71 (19) Note 2 verbatim allows more than 365 days, and a short fiscal period or a leap year changes the filed ASPA, so a row with neither this override nor partnershipFYStartInYear is BLOCKED. | null | number | |
| schedule71.partnerships[].var_E_designated_qreBox 260 — E: designated qualified resource expense (s.34.2(6)). | null | number | strict |
| schedule71.partnerships[].var_E_max_deductibleE support — max deductible under s.66.1/66.2/66.21/66.4. | null | number | |
| schedule71.partnerships[].var_E_written_info_from_partnership_receivedE support — written info from partnership received before the filing-due date (s.34.2(6) requirement). | boolean | null | |
| schedule71.partnerships[].var_F_designated_in_base_yearTrigger: corp designated F (amount 2K) in the BASE year. | boolean | null | |
| schedule71.partnerships[].var_F_discretionaryBox 265 — F: discretionary designation (IRREVOCABLE, s.34.2(10)). | null | number | strict |
| schedule71.wasOpenedFromDesignatedMemberFlowDisambiguation: opened from S7 "designated member" flow? Info advisory — s.125(7) concept, NOT s.34.2. | boolean | null | |
| 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. | integer | string | always |
Strict profile accepted values (20 of 68 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 |
|---|---|
| schedule71.corpTaxYearEnd | 0 to 20000 characters |
| schedule71.corpTaxYearStart | 0 to 20000 characters |
| schedule71.partnerships[].corpSharePercentage | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].particularPeriodEnd | 0 to 20000 characters |
| schedule71.partnerships[].particularPeriodStart | 0 to 20000 characters |
| schedule71.partnerships[].partnershipBN | 0 to 20000 characters |
| schedule71.partnerships[].partnershipFYEndInYear | 0 to 20000 characters |
| schedule71.partnerships[].partnershipFYStartInYear | 0 to 20000 characters |
| schedule71.partnerships[].partnershipName | 0 to 20000 characters |
| schedule71.partnerships[].qtiTcgComponent | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_active_business_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_other_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_property_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_A_share_of_income_and_tcg | -1000000000000000 to 1000000000000000; 0 to 20000 characters |
| schedule71.partnerships[].var_A_tcg_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_B_acl_component | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_B_share_of_loss_and_acl | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_E_designated_qre | -1000000000000000 to 1000000000000000 |
| schedule71.partnerships[].var_F_discretionary | -1000000000000000 to 1000000000000000 |
| taxYear | matches ^\s*(?:1[0-9]{3}|2(?:0(?:[0-1][0-9]{1}|2[0-7])))\s*$; 1000 to 2027 |
Output cells (95)
Paths are relative to this target’s result object in the response.
| Cell | Types |
|---|---|
| becameBankruptInYearThe caller's answer to this scope question, echoed back. Null when the request does not state it; the unanswered question is named in `missing_required` rather than read as No. | boolean | null |
| character_split.ordinary | number |
| character_split.tcg | number |
| character_split.activeBusiness | number |
| character_split.other | number |
| character_split.property | number |
| fired_gates | object |
| isMultiTierPartnershipThe caller's answer to this scope question, echoed back. Null when the request does not state it; the unanswered question is named in `missing_required` rather than read as No. | boolean | null |
| isProfessionalCorpThe caller's answer to this scope question, echoed back. Null when the request does not state it; the unanswered question is named in `missing_required` rather than read as No. | boolean | null |
| line_100 | number |
| line_105 | number |
| line_110 | number |
| line_115 | number |
| line_120 | number |
| line_200Box 200, the partnership's name, taken from the first row. Null when the schedule has no partnership row to take it from, and null on a row whose own cell is unanswered; the unanswered cell is named in `missing_required`. | null | string |
| line_210Box 210, the partnership's business number, taken from the first row. Null when the schedule has no partnership row to take it from, and null on a row whose own cell is unanswered; the unanswered cell is named in `missing_required`. | null | string |
| line_220Box 220, the end of the last fiscal period ending in the year, taken from the first row. Null when the schedule has no partnership row to take it from, and null on a row whose own cell is unanswered; the unanswered cell is named in `missing_required`. | null | string |
| line_225Box 225, the start of the particular period, taken from the first row. Null when the schedule has no partnership row to take it from, and null on a row whose own cell is unanswered; the unanswered cell is named in `missing_required`. | null | string |
| line_230 | number |
| line_240 | number |
| line_245 | number |
| line_250 | integer |
| line_255 | integer |
| line_260 | number |
| line_265 | number |
| line_270 | number |
| missing_required[] | string |
| net_to_schedule_73 | number |
| partnerships[]._shortfall_inner_b_nil_s343_3 | number |
| partnerships[].amount_2I_gross_stub_for_s73_col1 | number |
| partnerships[].amount_2J_qre_for_s73_col2 | number |
| partnerships[].amount_2K_discretionary_for_s73_col3 | number |
| partnerships[].amount_3E_new_member_for_s73_col6 | number |
| partnerships[].amount_4T_shortfall_for_s73_col9 | number |
| partnerships[].amount_4W_threshold_for_s73_col10 | number |
| partnerships[].character_ordinary | number |
| partnerships[].character_tcg | number |
| partnerships[].income_shortfall_s343 | number |
| partnerships[].line_200Box 200, the partnership's name on this row. Empty when the row does not state it; the unstated cell is named in `missing_required` rather than filled in. | string |
| partnerships[].line_210Box 210, the partnership's business number on this row. Empty when the row does not state it; the unstated cell is named in `missing_required` rather than filled in. | string |
| partnerships[].line_220 | string |
| partnerships[].line_225Box 225, the start of the particular period on this row. Null when the row does not state it; the unanswered cell is named in `missing_required`. | null | string |
| partnerships[].line_230 | number |
| partnerships[].line_240 | number |
| partnerships[].line_245 | number |
| partnerships[].line_250 | integer |
| partnerships[].line_255 | integer |
| partnerships[].line_260 | number |
| partnerships[].line_265 | number |
| partnerships[].line_270 | number |
| partnerships[].prior_year_aspa_reversal_s342_4 | number |
| partnerships[].qti_reserve_addback_s342_12 | number |
| partnerships[].qti_reserve_deduction_s342_11 | number |
| partnerships[].reg_4301_a_rate_application.autoCalculated | boolean |
| partnerships[].reg_4301_a_rate_application.averageDailyRate | number |
| partnerships[].reg_4301_a_rate_application.status | string |
| partnerships[].character_active_business | number |
| partnerships[].character_breakdown_supplied | boolean |
| partnerships[].character_other | number |
| partnerships[].character_property | number |
| partnerships[].particular_period_endThe end of the particular period on this row, which Schedule 73 reads as its box 140. Null when the row does not state it. | null | string |
| partnerships[].prior_year_aspa_reversal_tcg_s342_4 | array | boolean | null | number | object | string |
| partnerships[].qti_reserve_addback_capital_s342_12_b | number |
| partnerships[].qti_reserve_deduction_capital_s342_11_b_ii | number |
| partnerships[].aspa_withheld_pending_s342_2_c_answer | number |
| provisional | boolean |
| ready | boolean |
| total_aspa_inclusion | number |
| total_income_shortfall | number |
| total_new_corp_member_inclusion | number |
| total_prior_year_aspa_reversal | number |
| total_qti_reserve_addback | number |
| total_qti_reserve_deduction | number |
| warnings[].box | array | boolean | null | number | object | 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_idIdentifier of the registered T4012 gate that raised the finding; travels with `citation`. | string |
| warnings[].message | string |
| warnings[].severity | string |
| warnings[].codeStable machine identity of the finding, independent of its prose. Present on a finding a consumer is expected to branch on; absent on a prose-only review finding. | string |
| warnings[].notesWhat the rate manifest records against the year, including what is still outstanding before the year can be verified. | string |
| warnings[].sectionThe module that emitted the disclosure. | string |
| warnings[].sources[] | string |
| warnings[].taxYearThe taxation year whose rate tables are unverified. | integer |
| warnings[].taxYears[] | integer |
| prior_year_aspa_reversal_character_known | boolean |
| total_prior_year_aspa_reversal_tcg | number |
| total_aspa_withheld_pending_entitlement | number |