Journalism Finance - v2.0.6
    Preparing search index...

    Function getIncomeTax

    • Calculates a comprehensive breakdown of Canadian federal and provincial income taxes, including capital gains.

      Calculation Engine Methodology:

      1. Mandatory Payroll Deductions:

      • Calculates Tier 1 CPP/QPP base contribution (claimed as a Non-Refundable Tax Credit (NRTC)).
      • Calculates Tier 1 CPP/QPP enhanced contribution (claimed as a tax deduction).
      • Calculates Tier 2 CPP2/QPP2 based on the Yearly Additional Maximum Pensionable Earnings (YAMPE) (claimed as a tax deduction).
      • Calculates EI (and QPIP for Quebec residents) up to their respective annual maximum insurable earnings.

      2. Federal Tax & Non-Refundable Tax Credits (NRTCs):

      • Calculates gross federal tax using progressive federal tax brackets.
      • Determines the Federal Basic Personal Amount (BPA), applying a linear phase-out for high earners.
      • Calculates the Canada Employment Amount (CEA) against employment income up to the annual maximum.
      • Aggregates the federal NRTC base (BPA + Base CPP/QPP + EI + QPIP + CEA) and converts it to a credit amount, accounting for the 15% top-up credit rate for amounts above the first bracket threshold.
      • Applies the Federal Abatement exclusively for Quebec residents.

      3. Provincial Tax & NRTCs:

      • Calculates gross provincial tax using the specific province's progressive tax brackets.
      • Quebec-Specific: Applies the Deduction for Workers as an income reduction before tax calculation. Applies the Person Living Alone amount to the NRTC base (if applicable). Uses a decoupled NRTC rate.
      • Retrieves the provincial BPA, executing a specific linear phase-out for Manitoba residents, and dynamically mirroring the federal BPA phase-out for Yukon residents.
      • Aggregates the provincial NRTC base (Provincial BPA + Base CPP/QPP + EI + QPIP if in Quebec + CEA if in Yukon + Family Tax Benefit if in Manitoba).

      4. Provincial-Specific Modifiers (If Applicable):

      • B.C. Tax Reduction: A non-refundable credit for B.C. residents with low-to-moderate taxable income (subject to phase-out).
      • New Brunswick Tax Reduction: A non-refundable credit for N.B. residents with low-to-moderate taxable income (subject to phase-out).
      • Newfoundland and Labrador Tax Reduction: A non-refundable credit for N.L. residents with low-to-moderate taxable income (subject to phase-out).
      • Nova Scotia Tax Reduction: A non-refundable credit for N.S. residents with low-to-moderate taxable income (subject to phase-out).
      • Prince Edward Island Tax Reduction: A non-refundable credit for P.E.I. residents with low-to-moderate taxable income (subject to phase-out).
      • Ontario Tax Reduction (OTR) & LIFT: Reduces or eliminates basic Ontario tax for low-income earners, and applies the Low-income Individuals and Families Tax (LIFT) Credit.
      • Ontario Surtax: Applies a two-tier cascading surtax on net provincial tax in Ontario.
      • Provincial Health Premiums: Calculates the Ontario Health Premium based on strict taxable income bands, and the Quebec RAMQ premium based on income thresholds.

      5. Capital Gains:

      • Applies a 50% inclusion rate to any provided capital gains.
      • Isolates the exact tax burden associated with those capital gains by computing the marginal difference between a "with gains" and "without gains" tax profile.

      Parameters

      • employmentIncome: number

        The individual's total gross annual taxable employment income (assumes T4 income).

      • province:
            | "Newfoundland and Labrador"
            | "Prince Edward Island"
            | "Nova Scotia"
            | "New Brunswick"
            | "Quebec"
            | "Ontario"
            | "Manitoba"
            | "Saskatchewan"
            | "Alberta"
            | "British Columbia"
            | "Yukon"
            | "Northwest Territories"
            | "Nunavut"

        The Canadian province or territory of residence.

      • year: 2025

        The specific tax year.

      • options: {
            capitalGains?: number;
            quebec?: { livingAlone?: boolean; ramq?: boolean };
            rrsp?: number;
        } = {}

        Additional options for specific tax scenarios. Includes quebec.ramq, quebec.livingAlone, capitalGains, and rrsp.

      Returns {
          appliedFederalCredits: number;
          appliedProvincialCredits: number;
          capitalGainsRate: number;
          capitalGainsTax: number;
          cpp2OrQpp2Premium: number;
          cppOrQppBase: number;
          cppOrQppEnhanced: number;
          eiPremium: number;
          federalAbatement: number;
          federalRate: number;
          grossFederalTax: number;
          grossProvincialTax: number;
          healthPremium: number;
          provincialRate: number;
          provincialSurtax: number;
          provincialTaxReduction: number;
          qpipPremium: number;
          taxableCapitalGains: number;
          totalTaxAndPremiums: number;
      }

      A fully itemized object containing marginal rates, gross taxes, applied negative-valued credits, mandatory premiums, and the verified total deduction sum. NOTE: The property capitalGainsTax is informational only and explicitly shows the isolated tax burden generated by options.capitalGains. The base properties (grossFederalTax, grossProvincialTax, etc.) already have the capital gains tax baked into them. Summing all itemized deductions plus capitalGainsTax will result in double-counting!

      // Basic scenario: $100k employment income in Ontario
      getIncomeTax(100000, "Ontario", 2025);
      // With options: $80k employment income in Quebec, with $10k RRSP contribution and $5k Capital Gains, excluding RAMQ
      getIncomeTax(80000, "Quebec", 2025, {
      rrsp: 10000,
      capitalGains: 5000,
      quebec: { ramq: false }
      });